Cіпласпластик
559 subscribers
167 photos
35 videos
2 files
265 links
🇺🇦 Про айті та дотичні теми загалом, ну й трохи про C++.

Мої емоджі:
https://t.me/addemoji/AdaptiveDevIcons
https://t.me/addemoji/VehicleBrands
Download Telegram
Сьогодні не про Advent of Code. Вчора часу на це не було — наклепав якесь сумнівне рішення на SWI-Prolog 🦉, про який вже раніше писав. Додати нема чого.

Натомість розповім про #тулзи для дво- та тристоронніх дифів. Спробував нещодавно Kaleidoscope.app: доволі красива програма, є прикольні фічі й усе таке, але хз — лишилося відчуття сируватості… Тож коли тріал закінчився, просто видалив її.

За ці роки пробував багато різних програм. Але досі не бачив нічого кращого за Araxis Merge, яким користувався вперше ще років 20 тому. Єдина проблема, що ліцуха коштує 270 баксів — якось забагато для інструмента, котрий не те щоб критично часто трапляється в пригоді. Тож порівняння всі робив просто у VS Code 💻.

А в неділю зайшов до них на сайт і побачив, що вони дають ліцензію тим, хто робить внески в open source. Тож написав їм на е-пошту, скинув приклади своїх PRʼів у той же Xmake, та й власні напрацювання деякі є — і шо ви думаєте? Наступного дня відповіли мені й дали Pro-ліцуху на рік 🥰

Якщо шукали собі щось подібне, можете спробувати. Програма трохи олдскульна й доволі аскетична, але справу свою робить добре!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🤔1
Закладаюся, що більшість з вас не чула про мову Rye.

Я досі мрію, що для моєї улюбленої мови Red 🔺 колись вийде повноцінний реліз. А допоки цього не трапилося (і насправді вже не трапиться), звертаю увагу на будь-що інше, де REBOL 💻 вказаний як джерело натхнення. І якщо Red — це буквально той самий REBOL з додатковими фічами, то Rye зроблений скоріше «за мотивами», хоча спільних рис достатньо.

По-перше, він так само гомоіконний: між даними та кодом немає жодної різниці — це все лише блоки слів, які набувають якогось конкретного значення в контексті. Але якщо в ліспах списки на кшталт (+ 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
🤔32