Ilmus uus versioon Crystalist, Ruby süntaksiga kompileeritavast programmeerimiskeelest, mille põhijooned on käivitusaeg, kus on "sisse ehitatud" event loop, kus kõik sisendi-väljundi operatsioonid on asünkroonsed, mitme töötluse toetamine (hetkel aktiveeritav kompileerimise ajal) ja äärmiselt lihtne ning mugav töö C keele teekidega.
Alates versioonist 0.34.0 hakkab keel ametlikult liikuma kindla sammu suunas esimesse tõeliselt stabiilsesse väljaandesse (st versioon 1.0).
Uues versioonis Crystalis saab märkida järgmised muudatused ja täiustused nende olulisuse järjekorras:
API-sse on lisatud uus logimisraamatukogu Log, mis erinevalt vanast oskab edastada sõnumeid erinevatesse tagaplaanidesse ja filtreerida neid erinevalt sõltuvalt "allikast".
C arenduse jäänused, Errno ja WinError, mida kasutati primitiivsete sisendi-väljundi operatsioonide jaoks, kaovad minevikku tänu erandi hierarhiale IO::Error (kuid Errno kasutamine ei ole keelatud).
Omandatud automaatne else nil sisestamine operaatoreilt case/when/else, et vältida arendaja juhuslikku ühe haru vahelejätmist. when enum’ide ja Union’st tüüpi läbimise määratud juhtumite puhul matšimise korral. Teisisõnu, selline kood ei tööta enam ilma lisavälja toomata. when (when Char) või määramisega muud-harud:
a = 1 || 'x' || "foo"
juhtum a
kui Int32
# …
kui String
# …
lõpp
Kompilaatori valik disable_overflow ei ole enam saadaval. Ülevoo operatsioonide jaoks kasutage meetodeid &+ , &- , &*.
Array#fill lennatakse nüüd kiiremini kui kuul, tänu igavese tsükli asendamisele ühe lihtsa memset'iga;
Shardide (pakettide) haldur, mis kannab paraku nime shards, kasutab nüüd kiiremat ja tõhusamat sõltuvuste rahuldamise algoritmi Molinillo, mille eest vaadati CocoaPods's (Swift) ja Builder'is (Ruby).
Lisatud tugi LLVM 10, mis peaks tooma meile teatud jõudluse ja stabiilsuse kasvu jne.
… ja palju muid, subjektiivselt hinnates, vähem olulisi täiustusi.
Tuleb märkida, et Crystal on LLVM-il põhinev keel, mis võimaldab luua rakendusi tihti kiiremini, lihtsamalt ja selgemalt kui selle tõlgendatud „vennad”, ning samas toota üsna kiiret binaarfaili. Eraldub Golangi taustal täiusliku OOP-ga, generikate toega ning arusaadava ja lihtsa süntaksiga. Oma otstarbel sarnaneb suuresti Nimiga, kuid on selgesõnaliselt suunatud praktilisele kasutusele „siin ja praegu”, mille tõttu on selle API arsenalis palju normaalselt dokumenteeritud mugavaid ja kvaliteetseid tööriistu, mida keele arendajad toetavad ja seega ka üsna stabiilsed.
Allikas: linux.org.ru
