Objavljena je nova verzija Crystal-a, kompajlirani programski jezik sa Ruby sintaksom, čije su glavne karakteristike runtime sa „ugrađenom“ petljom događaja, u kojoj su sve I/O operacije asinkrone, podrška za višenitno jer je omogućeno zastavicom tokom kompilacije) i izuzetno jednostavno i praktično rukovanje sa bibliotekama u C.
Počevši od verzije 0.34.0, jezik zvanično počinje da se kreće ka svom prvom pravom izdanju (tj. verziji 1.0).
Nova verzija Crystal-a uključuje sljedeće promjene i poboljšanja po važnosti:
-
Nova biblioteka za evidentiranje je dodana API-ju Prijavite, koji, za razliku od starog, može slati poruke različitim backendovima i filtrirati te poruke različito ovisno o “izvoru”.
-
Rudimenti iz svijeta C razvoja, Errno и WinError, koji se koristi za I/O primitive, postaju stvar prošlosti zahvaljujući hijerarhiji izuzetaka IO::Greška (međutim, niko još ne zabranjuje korištenje Errna).
-
Uklonjena je automatska zamjena else nil iz operatora slučaj/kada/drugo. Ovo se radi kako bi se spriječilo da programer slučajno preskoči jednu od grana. kada prilikom uparivanja na determinističkim slučajevima kao što su enumovi i prolazak kroz tipove iz Unije. To jest, jednostavno rečeno, ovaj kod više neće raditi bez navođenja još jednog kada (kada Char) ili zadataka drugo- grane:
a = 1 || 'x' || "foo"
slučaj a
kada Int32
#…
kada String
#…
Kraj
-
Opcija kompajlera disable_overflow nije više dostupno. Za operacije prelivanja koristite metode &+, &-, &*.
-
Array#fill sada leti brže od metka, zahvaljujući zamjeni glupe petlje jednim jednostavnim memsetom;
-
Upravitelj krhotina (paketa), paradoksalno tzv. shards, sada koristi brži i efikasniji Molinillo algoritam za zadovoljenje zavisnosti koji se nalazi u CocoaPods (Swift) i Builder (Ruby).
-
Dodata podrška LLVM 10, što će nam u teoriji dati određeno povećanje produktivnosti, stabilnosti itd.
... i mnoga druga, po mom subjektivnom mišljenju, manje značajna poboljšanja.
Želio bih napomenuti da je Crystal jezik izgrađen na LLVM-u, koji vam omogućava da pišete aplikacije ponekad brže, jednostavnije i konciznije nego na interpretiranim „braćama“, a da u isto vrijeme dobijete prilično brzu binarnu datoteku kao rezultat. U poređenju sa Golangom, ističe se po svom apsolutno punom OOP-u, podršci za generike i vrlo jednostavnoj i razumljivoj sintaksi. Njegova namjena je u velikoj mjeri slična Nimu, ali je istovremeno jasno usmjerena na praktičnu upotrebu "ovdje i sada", zahvaljujući čemu u svom API arsenalu ima mnogo dobro dokumentiranih, praktičnih i kvalitetnih alata, podržanih od strane programeri jezika i stoga vrlo stabilni.
izvor: linux.org.ru