Objavljen Crystal 0.34.0

Objavljena je nova verzija Crystal-a, kompilirani programski jezik sa sintaksom Ruby, čije su glavne značajke runtime s "ugrađenom" petljom događaja, u kojoj su sve I/O operacije asinkrone, podrška za višenitnost (sve dok budući da je to omogućeno zastavom tijekom kompilacije) i izuzetno jednostavan i praktičan rad s bibliotekama u C-u.

Počevši od verzije 0.34.0, jezik se službeno kreće prema svom prvom pravom izdanju (tj. verziji 1.0).

Nova verzija Crystala uključuje sljedeće promjene i poboljšanja prema važnosti:

  • API-ju je dodana nova biblioteka za bilježenje Prijava, koji za razliku od starog može slati poruke različitim pozadinama i različito filtrirati te poruke ovisno o “izvoru”.

  • Začeci iz svijeta C razvoja, Errno и WinError, koji se koriste za I/O primitive, postaju stvar prošlosti zahvaljujući hijerarhiji izuzetaka IO::Pogreška (međutim, nitko 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 poput enuma i prolaska 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' || "fu"
slučaj a
kada je Int32
# ...
kada String
# ...
kraj

  • Opcija kompajlera onemogući_prelijevanje više nije dostupan. Za operacije prelijevanja koristite metode &+, &-, &*.

  • Niz#ispuna sada leti brže od metka, zahvaljujući zamjeni glupe petlje s jednim jednostavnim memsetom;

  • Upravitelj šardova (paketa), paradoksalno nazvan krhotine, sada koristi brži i učinkovitiji Molinillo algoritam zadovoljstva ovisnosti koji se nalazi u CocoaPods (Swift) i Builder (Ruby).

  • Dodana 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ćuje pisanje aplikacija ponekad brže, jednostavnije i konciznije nego na njegovoj interpretiranoj "braći", au isto vrijeme kao rezultat dobivate prilično brzu binarnu datoteku. U usporedbi s Golangom, ističe se svojim potpuno potpunim OOP-om, podrškom za generike i vrlo jednostavnom i razumljivom sintaksom. Njegova je svrha uvelike slična Nimu, ali je u isto vrijeme jasno usmjerena na praktičnu upotrebu "ovdje i sada", zahvaljujući čemu u svom API arsenalu ima mnogo dobro dokumentiranih, praktičnih i visokokvalitetnih alata, podržanih od strane programeri jezika i stoga vrlo stabilan.

Izvor: linux.org.ru

Dodajte komentar