Українська
Відкрити в Telegram

Пост Закладаюся, що більшість з вас не чула про мову Rye.

5 грудня 2025
С
Сіпласпластик
Закладаюся, що більшість з вас не чула про мову 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.
1 · 1.1K ·

Поруч у стрічці

ССіпласпластикКолись давно тимлід на роботі дав мені задачу зробити фічу на Perl 🧅, а сам пішов у відпустку. Я намагався розібратися з тим перлом, але мені настільки не зайшлССіпласпластикСьогодні не про Advent of Code. Вчора часу на це не було — наклепав якесь сумнівне рішення на SWI-Prolog 🦉, про який вже раніше писав. Додати нема чого. Натоміс
це повідомлення
ССіпласпластикВраховуючи, що останні пару місяців я дуже багато займаюся тим, що перекладаю JSONʼи з місця на місце, колупаю CSV і тицяю патиком SQLite-базу, можу впевнено заССіпласпластик2025 рік був складним у багатьох аспектах. Подекуди занадто складним. Але ми з вами досі тут, а це чогось та варте! Погляньмо на наші з вами результати в цифрах

Відкрита публічна стрічка з пошукового індексу ChatCrawler — «Google по публічному Telegram»; оновлюється в міру обходу майданчика. Час — UTC.

Лише публічний контент, офіційний API Telegram. Про проєкт · Питання · Межі індексу · Прибрати сторінку з видачі · Каталог · Пошук · Як ми рахуємо