Vyšlo Crystal 0.34.0

Vyšla nová verzia Crystal, kompilovaného programovacieho jazyka so syntaxou Ruby. Medzi hlavné vlastnosti patrí runtime s "vstavaným" event loopom, v ktorom sú všetky operácie vstupu a výstupu asynchrónne, podpora viacerých vlákien (aktivačná vlajka pri kompilácii) a mimoriadne jednoduchá a pohodlná práca s knižnicami v C.

Od verzie 0.34.0 jazyk oficiálne začína stabilne postupovať smerom k prvému skutočnému vydaniu (t.j. verzii 1.0).

V novej verzii Crystal sú možné nasledujúce zmeny a vylepšenia podľa ich dôležitosti:

  • Do API bola pridaná nová knižnica pre spracovanie logov Log, ktorá, na rozdiel od starej, dokáže smerovať správy do rôznych backendov a filtruje tieto správy rôznymi spôsobmi v závislosti od "zdroja".

  • Rudimenty zo sveta vývoja v C, Errno a WinError, používané na primitívne vstupy a výstupy, odchádzajú do minulosti vďaka hierarchii výnimiek IO::Error (avšak nikoho zatiaľ nezakazuje používať Errno).

  • Bola odstránená automatická substitúcia else nil z operátora case/when/else. Toto sa robí na to, aby sa vylúčila náhodná strata jednej z vetiev programátorom when pri zhodovaní na determinované prípady ako enumy a prechodu typmi z Unionu. Jednoducho povedané, takýto kód už nebude fungovať bez ďalšieho when (when Char) alebo pridania else-vetvy:

a = 1 || ‘x’ || "foo"
case a
when Int32
# …
when String
# …
end

  • Možnosť kompilátora disable_overflow už nie je dostupná. Pre operácie s pretečením používajte metódy &+, &-, &*.

  • Array#fill teraz letí rýchlejšie ako guľka, vďaka nahradeniu nemotorného cyklu jednoduchým memsetom;

  • Správca shardov (balíkov), ktorý sa paradoxne nazýva shards, teraz používa rýchlejší a efektívnejší algoritmus na uspokojenie závislostí Molinillo, okopírovaný z CocoaPods (Swift) a Builder (Ruby).

  • Pridaná podpora LLVM 10, čo by nám malo teoreticky priniesť určitý nárast výkonu, stability, atď.

… a množstvo ďalších, podľa môjho subjektívneho názoru, menej zásadných vylepšení.

Rád by som poznamenal, že Crystal je jazyk postavený na LLVM, ktorý umožňuje písanie aplikácií niekedy rýchlejšie, jednoduchšie a stručnejšie ako jeho interpretované "príbuzné", pričom na výstupe dosahuje celkom rýchly binárny súbor. V porovnaní s Golang vystupuje ako plnohodnotný objektovo orientovaný jazyk, podporuje generiká a má veľmi jednoduchú a zrozumiteľnú syntaxu. Vo svojich funkciách je do veľkej miery analógom jazyka Nim, ale zároveň je jasne orientovaný na praktické aplikácie "tu a teraz", čo mu umožňuje disponovať v svojom API mnohými dobre zdokumentovanými, pohodlnými a kvalitnými nástrojmi podporovanými vývojármi jazyka a preto veľmi stabilnými.

Zdroj: linux.org.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster