Колись давно тимлід на роботі дав мені задачу зробити фічу на Perl 🧅 , а сам пішов у відпустку. Я намагався розібратися з тим перлом, але мені настільки не зайшло, що не зміг себе змусити. Та й у щойно створеній команді ніхто мови знав. Тож я плюнув і переписав всі наявні на той момент напрацювання на Python 💻 + фічу, яку мав зробити. (Python насправді теж ніхто не знав, але всі хутко розібралися).
Тимлід, коли повернувся, дуже засмутився з цього приводу, бо не любив мови з відступами замість дужок, почав забивати на роботу, і врешті я став його тимлідом👀 Та повернімося до програмування.
Perl, як відомо, це write-only мова. Я знаю людей, які добре в ній тямлять і роблять чудові речі, однак, я точно не серед них. Не люблю, коли в мові програмування забагато якихось мутних символів. Чого не можна написати нормальними словами‽
Взагалі хз, нащо я це все вам розповідаю. Ні, на перлі я не почав писати й не планую.
⁂
О, до речі ж розвʼязав учора задачі першого дня Advent of Code на Uiua💻 . Оцініть мій код 👇
Мова доволі нескладна, опановується швидко. А от концепції складнуваті — мозок вивертають місцями. Першу задачу я швидко накидав: там відносно проста згортка списку. У другій задачі в принципі теж вона, але вже довелося посидіти. Початкове рішення працювало чудово на тестових даних, але на реальних видавало некоректний результат, з чого стало очевидно, що там якесь виродження з нулями.
Обідня перерва на той час добігла кінця, тож дав розібратися з цим Claude Code. Він на диво непогано себе показав! Прям дуже довго щось дебажив та врешті досяг результата. Щоправда, розвʼязок був занадто не елегантний — з трьома додатковими функціями. Довелося викинути й написати своє рішення по-людськи. Я переконаний, що цією мовою можна написати ще краще, та я задоволений навіть цим результатом.
Тимлід, коли повернувся, дуже засмутився з цього приводу, бо не любив мови з відступами замість дужок, почав забивати на роботу, і врешті я став його тимлідом
Perl, як відомо, це write-only мова. Я знаю людей, які добре в ній тямлять і роблять чудові речі, однак, я точно не серед них. Не люблю, коли в мові програмування забагато якихось мутних символів. Чого не можна написати нормальними словами‽
Взагалі хз, нащо я це все вам розповідаю. Ні, на перлі я не почав писати й не планую.
⁂
О, до речі ж розвʼязав учора задачі першого дня Advent of Code на Uiua
Мова доволі нескладна, опановується швидко. А от концепції складнуваті — мозок вивертають місцями. Першу задачу я швидко накидав: там відносно проста згортка списку. У другій задачі в принципі теж вона, але вже довелося посидіти. Початкове рішення працювало чудово на тестових даних, але на реальних видавало некоректний результат, з чого стало очевидно, що там якесь виродження з нулями.
Обідня перерва на той час добігла кінця, тож дав розібратися з цим Claude Code. Він на диво непогано себе показав! Прям дуже довго щось дебажив та врешті досяг результата. Щоправда, розвʼязок був занадто не елегантний — з трьома додатковими функціями. Довелося викинути й написати своє рішення по-людськи. Я переконаний, що цією мовою можна написати ще краще, та я задоволений навіть цим результатом.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯21👍5❤3🥰1🙉1
Сьогодні не про Advent of Code. Вчора часу на це не було — наклепав якесь сумнівне рішення на SWI-Prolog 🦉 , про який вже раніше писав. Додати нема чого.
Натомість розповім про #тулзи для дво- та тристоронніх дифів. Спробував нещодавно Kaleidoscope.app: доволі красива програма, є прикольні фічі й усе таке, але хз — лишилося відчуття сируватості… Тож коли тріал закінчився, просто видалив її.
За ці роки пробував багато різних програм. Але досі не бачив нічого кращого за Araxis Merge, яким користувався вперше ще років 20 тому. Єдина проблема, що ліцуха коштує 270 баксів — якось забагато для інструмента, котрий не те щоб критично часто трапляється в пригоді. Тож порівняння всі робив просто у VS Code💻 .
А в неділю зайшов до них на сайт і побачив, що вони дають ліцензію тим, хто робить внески в open source. Тож написав їм на е-пошту, скинув приклади своїх PRʼів у той же Xmake, та й власні напрацювання деякі є — і шо ви думаєте? Наступного дня відповіли мені й дали Pro-ліцуху на рік🥰
Якщо шукали собі щось подібне, можете спробувати. Програма трохи олдскульна й доволі аскетична, але справу свою робить добре!
Натомість розповім про #тулзи для дво- та тристоронніх дифів. Спробував нещодавно Kaleidoscope.app: доволі красива програма, є прикольні фічі й усе таке, але хз — лишилося відчуття сируватості… Тож коли тріал закінчився, просто видалив її.
За ці роки пробував багато різних програм. Але досі не бачив нічого кращого за Araxis Merge, яким користувався вперше ще років 20 тому. Єдина проблема, що ліцуха коштує 270 баксів — якось забагато для інструмента, котрий не те щоб критично часто трапляється в пригоді. Тож порівняння всі робив просто у VS Code
А в неділю зайшов до них на сайт і побачив, що вони дають ліцензію тим, хто робить внески в open source. Тож написав їм на е-пошту, скинув приклади своїх PRʼів у той же Xmake, та й власні напрацювання деякі є — і шо ви думаєте? Наступного дня відповіли мені й дали Pro-ліцуху на рік
Якщо шукали собі щось подібне, можете спробувати. Програма трохи олдскульна й доволі аскетична, але справу свою робить добре!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🤔1
Закладаюся, що більшість з вас не чула про мову Rye.
Я досі мрію, що для моєї улюбленої мови Red🔺 колись вийде повноцінний реліз. А допоки цього не трапилося (і насправді вже не трапиться), звертаю увагу на будь-що інше, де REBOL 💻 вказаний як джерело натхнення. І якщо Red — це буквально той самий REBOL з додатковими фічами, то Rye зроблений скоріше «за мотивами», хоча спільних рис достатньо.
По-перше, він так само гомоіконний: між даними та кодом немає жодної різниці — це все лише блоки слів, які набувають якогось конкретного значення в контексті. Але якщо в ліспах списки на кшталт
По-друге, у мові фактично нема якихось ключових слів або спеціальних конструкцій. Усі
Ну а ще виходить (по-третє), що можна створити контекст, в якому цих усіх функцій не буде взагалі, зате можна наповнити його власними штуками. Це активно використовується для створення діалектів. Останні є фактично eDSL, і вони дуже різноманітні, що як добре, так і погано з обʼєктивних причин.
Чисто з погляду на синтаксис Rye трохи сумнівний місцями. Не на мій смак. Трохи приємніше за ліспи, але досі гірше, ніж REBOL чи Red. Думаю, вся справа в дужках: в ліспах використовуються переважно круглі, і їх багато, тут же їх менше, але вони фігурні, а в REBOL дужки квадратні! Що це значить? Правильно — що не треба тиснути Shift! Оптимізація процесів😀
Ще є всілякі приколи, як можна записувати одні й ті самі слова по-різному:
Тулити щось прямо до дужок не можна — обовʼязково ставити пробіл. Хз, мені не дуже це подобається.
Тепер трохи про мінуси. Одним з помітних недоліків єте, що ніхєра не працює. Ну може не геть прям усе, але за той час, упродовж якого я намагався розвʼязати задачі, я бачив і функції, які працюють не так, як описано, і якісь внутрішні краші. Документації дуже мало, деяка взагалі застаріла. Врешті довелося плюнути на це діло й закрити третій день за допомогою 🆕 , яка дивним чином до речі схожа синтаксично, але звісно не настільки гнучка. (А четвертого дня — учора — взагалі розвʼязував задачі на 💻 . Кочуся потроху донизу).
Сам інтерпретатор до речі на🦶 написаний, що потенційно дозволяє легко кроскомпілювати програми під будь-які системи, але я не перевіряв.
У підсумку скажу, що лишився трохи розчарований. Чувак-автор — молодець, але видно, що йому бракує чи то наснаги, чи то часу, щоб стабілізувати й розвивати мову швидше. Навіть логотип ШІ-шний. Тож лишаємося ми й надалі без сучаснішого нащадка REBOL.
Я досі мрію, що для моєї улюбленої мови Red
По-перше, він так само гомоіконний: між даними та кодом немає жодної різниці — це все лише блоки слів, які набувають якогось конкретного значення в контексті. Але якщо в ліспах списки на кшталт
(+ 100 500) обчислюються одразу, хоча цьому можна запобігти додавши якийсь апостроф або ще щось залежно від діалекту, то в Rye (як і в REBOL) навпаки — нічого само по собі не обчислюється, а треба робити do { _+ 100 500 }.По-друге, у мові фактично нема якихось ключових слів або спеціальних конструкцій. Усі
if, for, while і ще купа усіляких — це звичайні функції, які приймають або скалярні значення, або ті ж блоки. Виходить, що той do зазвичай вже є десь усередині них, тож на практиці у своєму коді бачиш його не часто. Ну а ще виходить (по-третє), що можна створити контекст, в якому цих усіх функцій не буде взагалі, зате можна наповнити його власними штуками. Це активно використовується для створення діалектів. Останні є фактично eDSL, і вони дуже різноманітні, що як добре, так і погано з обʼєктивних причин.
Чисто з погляду на синтаксис Rye трохи сумнівний місцями. Не на мій смак. Трохи приємніше за ліспи, але досі гірше, ніж REBOL чи Red. Думаю, вся справа в дужках: в ліспах використовуються переважно круглі, і їх багато, тут же їх менше, але вони фігурні, а в REBOL дужки квадратні! Що це значить? Правильно — що не треба тиснути Shift! Оптимізація процесів
Ще є всілякі приколи, як можна записувати одні й ті самі слова по-різному:
add: pfn { a b } { a + b } ; pure btw!
div: pfn { a b } { a / b }
div ( add 3 9 ) 6 ; 2.000000
( 3 .add 9 ) .div 6 ; 2.000000
3 .add 9 |div 6 ; 2.000000Тулити щось прямо до дужок не можна — обовʼязково ставити пробіл. Хз, мені не дуже це подобається.
Тепер трохи про мінуси. Одним з помітних недоліків є
Сам інтерпретатор до речі на
У підсумку скажу, що лишився трохи розчарований. Чувак-автор — молодець, але видно, що йому бракує чи то наснаги, чи то часу, щоб стабілізувати й розвивати мову швидше. Навіть логотип ШІ-шний. Тож лишаємося ми й надалі без сучаснішого нащадка REBOL.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🤔3
Враховуючи, що останні пару місяців я дуже багато займаюся тим, що перекладаю JSONʼи з місця на місце, колупаю CSV і тицяю патиком SQLite-базу, можу впевнено заявити: нічого краще за Nushell для цього ще не вигадали!
Усілякі там фільтрації, агрегації, щось звідкись дістати, транспонувати, перекрутити, згорнути список — це все робиться в декілька рядків легкого для сприйняття коду. Не треба вчити всратий синтаксис🙂 А потім хоч читайте та пишість JSON 💻 , хоч CSV, хоч TOML 💻 якийсь — вже без різниці.
Але інколи все ж буває зручніше зробити щось нашвидкоруч в UI. І якщо Excel вам для цього здається заважким, то я оце знайшов і спробував легшу прогу: SmoothCSV. Вона виявилася вельми непогана! Нічого надзвичайного, але під мій випадок вона якраз ідеальна. І там навіть є змога писати SQL-запити по CSV-шках, хоча я не пробував.
Усілякі там фільтрації, агрегації, щось звідкись дістати, транспонувати, перекрутити, згорнути список — це все робиться в декілька рядків легкого для сприйняття коду. Не треба вчити всратий синтаксис
jq, не треба писати скрипти на пайтоні, щоб перегнати один формат в інший — лише кілька одних і тих самих команд, і вуаля! З базових композитних типів там структури, списки й таблиці, причому останні еквівалентні першим, вкладеним у другі Але інколи все ж буває зручніше зробити щось нашвидкоруч в UI. І якщо Excel вам для цього здається заважким, то я оце знайшов і спробував легшу прогу: SmoothCSV. Вона виявилася вельми непогана! Нічого надзвичайного, але під мій випадок вона якраз ідеальна. І там навіть є змога писати SQL-запити по CSV-шках, хоча я не пробував.
Please open Telegram to view this post
VIEW IN TELEGRAM
Smoothcsv
SmoothCSV - The ultimate CSV editor for macOS & Windows
SmoothCSV is the ultimate CSV editor for macOS & Windows. It's fast, easy to use, and packed with powerful features.
❤8👍7
2025 рік був складним у багатьох аспектах. Подекуди занадто складним. Але ми з вами досі тут, а це чогось та варте! Погляньмо на наші з вами результати в цифрах 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉31 12🥰6🍾4🔥3👍1🤨1