Выйшаў Crystal 0.34.0

Выйшла новая версія Crystal, кампіляванай мовы праграмавання з сінтаксісам Ruby, галоўныя асаблівасці якога – рантайм з «уманціраваным» event loop'ам, у якім усе аперацыі ўводу-вываду асінхронныя, падтрымка шматструменнасці (пакуль уключаецца сцягам пры кампіляцыі) і выключна простая і зручная праца з бібліятэкамі на Сі.

Пачынальна з версіі 0.34.0, мова афіцыйна пачынае цвёрдай хадой рухацца ў бок першага сапраўднага рэлізу (г.зн. версіі 1.0).

У новай версіі Crystal можна адзначыць наступныя змены і паляпшэнні ў парадку іх важнасці:

  • У API дададзена новая бібліятэка часопісавання Увайсці, якая, у адрозненне ад старой, умее накіроўваць паведамленні ў розныя бэкенды і па-рознаму гэтыя паведамленні фільтраваць у залежнасці ад "крыніцы".

  • Рудыменты са свету распрацоўкі на Сі, Errno и WinError, якія выкарыстоўваліся для прымітываў уводу-вываду, сыходзяць у мінулае дзякуючы іерархіі выключэнняў IO::Error (зрэшты, выкарыстоўваць Errno ніхто пакуль не забараняе).

  • Прыбраная аўтаматычная падстаноўка else nil з аператара case/when/else. Гэта зроблена для таго, каб выключыць выпадковы пропуск распрацоўшчыкам адной з галінак. калі пры матчынгу па дэтэрмінаваных выпадках накшталт enum'аў і праходу па тыпах з Union'а. Г.зн., прасцей кажучы, вось такі код больш працаваць не будзе без указання яшчэ аднаго калі (when Char) або заданні яшчэ-галінкі:

a = 1 || 'x' || "foo"
case a
when Int32
#…
when String
#…
канец

  • Опцыя кампілятара disable_overflow больш недаступная. Для аперацый з перапаўненнем выкарыстоўвайце метады &+, &-, &*.

  • Array#fill зараз лётае хутчэй кулі, дзякуючы замене тупаватага цыклу на адзін просты memset;

  • Мэнэджар шардаў (пакетаў), якія называюцца, як гэта ні парадаксальна, чарапкі, зараз выкарыстоўвае больш хуткі і эфектыўны алгарытм задавальнення залежнасцяў Molinillo, падгледжаны ў CocoaPods (Swift) і Builder (Ruby).

  • Дададзена падтрымка LLVM 10, Што па ідэі дасць нам нейкі рост прадукцыйнасці, стабільнасці, etc.

… і мноства іншых, на мой суб'ектыўны погляд, менш істотных паляпшэнняў.

Хацелася б адзначыць, што Crystal — гэта пабудаваная на LLVM мова, якая дазваляе пісаць прыкладанні часам хутчэй, прасцей і лаканічна, чым на яго інтэрпрэтаваных «субратах», і пры гэтым атрымліваць на выхадзе даволі шустры бінарнік. На фоне Golang вылучаецца абсалютна паўнавартасным ААП, падтрымкай джэнерыкаў і вельмі простым і зразумелым сінтаксісам. Па сваім прызначэнні шмат у чым аналагічны Nim, але пры гэтым відавочна арыентаваны на практычнае ўжыванне «тут і цяпер», дзякуючы чаму мае ў сваім API-арсенале мноства нармальна дакументаваных зручных і якасных прылад, якія падтрымліваюцца распрацоўнікамі мовы і таму вельмі стабільных.

Крыніца: linux.org.ru

Дадаць каментар