Crystal 0.34.0 objavljen

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

Dodajte komentar