Vydaný Crystal 0.34.0

Bola vydaná nová verzia Crystal, skompilovaný programovací jazyk so syntaxou Ruby, ktorého hlavnými vlastnosťami sú runtime so „zabudovanou“ slučkou udalostí, v ktorej sú všetky I/O operácie asynchrónne, podpora multithreadingu (pokiaľ ako to umožňuje príznak počas kompilácie) a mimoriadne jednoduché a pohodlné ovládanie s knižnicami v jazyku C.

Počnúc verziou 0.34.0 sa jazyk oficiálne začína pohybovať smerom k prvému skutočnému vydaniu (t. j. verzii 1.0).

Nová verzia Crystal obsahuje nasledujúce zmeny a vylepšenia v poradí dôležitosti:

  • Do API bola pridaná nová knižnica protokolovania Log, ktorý na rozdiel od starého dokáže posielať správy na rôzne backendy a tieto správy rôzne filtrovať v závislosti od „zdroja“.

  • Základy zo sveta vývoja C, Errno и WinError, používané pre I/O primitíva, sa stávajú minulosťou vďaka hierarchii výnimiek IO::Chyba (Errno však zatiaľ nikto nezakazuje).

  • Odstránená automatická náhrada else nil od operátora prípad/kedy/inak. Deje sa tak, aby sa zabránilo tomu, že vývojár náhodne preskočí jednu z vetiev. kedy pri porovnávaní na deterministických prípadoch, ako sú enumy, a prechod cez typy z únie. To znamená, že tento kód už nebude fungovať bez uvedenia jedného ďalšieho kedy (keď Char) alebo úlohy inak- pobočky:

a = 1 || 'x' || "foo"
prípad a
keď Int32
#…
keď String
#…
koniec

  • Možnosť kompilátora disable_overflow už nie je k dispozícii. Pre operácie pretečenia použite metódy &+, &-, &*.

  • Pole#fill teraz letí rýchlejšie ako guľka vďaka nahradeniu hlúpej slučky jedným jednoduchým memsetom;

  • Správca črepov (balíčkov), zvaný paradoxne črepy, teraz používa rýchlejší a efektívnejší algoritmus uspokojenia závislosti Molinillo, ktorý sa nachádza v CocoaPods (Swift) a Builder (Ruby).

  • Pridaná podpora LLVM 10, čo nám teoreticky prinesie určité zvýšenie produktivity, stability atď.

... a mnohé ďalšie, podľa môjho subjektívneho názoru, menej výrazné vylepšenia.

Chcel by som poznamenať, že Crystal je jazyk postavený na LLVM, ktorý vám umožňuje písať aplikácie niekedy rýchlejšie, jednoduchšie a stručnejšie ako na jeho interpretovaných „bratoch“ a zároveň získať pomerne rýchly binárny súbor. Oproti Golangu vyniká absolútne plnohodnotným OOP, podporou generík a veľmi jednoduchou a zrozumiteľnou syntaxou. Jeho účel je do značnej miery podobný ako Nim, no zároveň je jednoznačne zameraný na praktické využitie „tu a teraz“, vďaka čomu má vo svojom API arzenáli množstvo dobre zdokumentovaných, pohodlných a kvalitných nástrojov, ktoré podporuje napr. jazykových vývojárov, a preto sú veľmi stabilné.

Zdroj: linux.org.ru

Pridať komentár