Izlaists Crystal 0.34.0

Ir izlaista jauna Crystal versija, kompilēta programmēšanas valoda ar Ruby sintaksi, kuras galvenās iezīmes ir izpildlaiks ar “iebūvētu” notikumu cilpu, kurā visas I/O darbības ir asinhronas, atbalsts daudzpavedienu veidošanai (ja vien jo kompilācijas laikā to iespējo karodziņš) un ārkārtīgi vienkārša un ērta darbība ar bibliotēkām C.

Sākot ar versiju 0.34.0, valoda oficiāli sāk virzīties uz savu pirmo reālo versiju (t.i., versiju 1.0).

Jaunajā Crystal versijā ir iekļautas šādas izmaiņas un uzlabojumi svarīguma secībā:

  • API ir pievienota jauna reģistrēšanas bibliotēka Log, kas atšķirībā no vecā var nosūtīt ziņojumus uz dažādām aizmugursistēmām un filtrēt šos ziņojumus atšķirīgi atkarībā no “avota”.

  • Pamati no C izstrādes pasaules, Errno и WinError, ko izmanto I/O primitīviem, kļūst par pagātni, pateicoties izņēmumu hierarhijai IO::Kļūda (tomēr neviens vēl neaizliedz lietot Errno).

  • No operatora noņemta automātiskā cita nulles aizstāšana gadījums/kad/cits. Tas tiek darīts, lai neļautu izstrādātājam nejauši izlaist kādu no atzariem. kad saskaņojot deterministiskos gadījumus, piemēram, enums, un izlaižot veidus no Union. Tas ir, vienkārši sakot, šis kods vairs nedarbosies, nenorādot vēl vienu kad (kad Char) vai uzdevumi cits- filiāles:

a = 1 || 'x' || "foo"
gadījums a
kad Int32
#…
kad String
#…
beigas

  • Kompilatora opcija disable_overflow vairs nav pieejams. Pārpildes operācijām izmantojiet &+, &-, &* metodes.

  • Masīvs#fill tagad lido ātrāk nekā lode, pateicoties muļķīgās cilpas aizstāšanai ar vienu vienkāršu memset;

  • Šķembu (pakešu) pārvaldnieks, ko paradoksālā kārtā sauc par shards, tagad izmanto ātrāku un efektīvāku Molinillo atkarības apmierinātības algoritmu, kas atrodams CocoaPods (Swift) un Builder (Ruby).

  • Pievienots atbalsts LLVM 10, kas teorētiski dos mums zināmu produktivitātes pieaugumu, stabilitāti utt.

... un daudzi citi, manā subjektīvā skatījumā, mazāk būtiski uzlabojumi.

Vēlos atzīmēt, ka Crystal ir uz LLVM balstīta valoda, kas ļauj reizēm rakstīt aplikācijas ātrāk, vienkāršāk un kodolīgāk nekā uz interpretētajiem “brāļiem”, un tajā pašā laikā rezultātā iegūt diezgan ātru bināru. Salīdzinot ar Golang, tas izceļas ar absolūti pilnvērtīgu OOP, ģenērisko līdzekļu atbalstu un ļoti vienkāršu un saprotamu sintakse. Tā mērķis lielā mērā ir līdzīgs Nim, taču tajā pašā laikā tas ir skaidri vērsts uz praktisku izmantošanu “šeit un tagad”, pateicoties kuriem tā API arsenālā ir daudz labi dokumentētu, ērtu un kvalitatīvu rīku, ko atbalsta valodu izstrādātājiem un tāpēc ļoti stabils.

Avots: linux.org.ru

Pievieno komentāru