Crystal 0.34.0 kaleratu da

Crystal-ren bertsio berri bat kaleratu da, Ruby sintaxia duen programazio lengoaia konpilatua, ezaugarri nagusiak exekuzio-denbora dira "barneatutako" gertaeren begizta batekin, non I/O eragiketa guztiak asinkronoak diren, hari anitzeko laguntza (beti ere konpilazioan bandera batek gaitzen baitu) eta oso erraza eta erosoa da C-ko liburutegiekin.

0.34.0 bertsiotik hasita, hizkuntza ofizialki bere lehen bertsio errealera joaten hasten da (hau da, 1.0 bertsiora).

Crystal-en bertsio berriak honako aldaketa eta hobekuntza hauek ditu garrantziaren arabera:

  • Erregistro-liburutegi berri bat gehitu da APIra Login, zaharrak ez bezala, backend ezberdinetara mezuak bidal ditzake eta mezu hauek modu ezberdinean iragazi "iturriaren" arabera.

  • C garapenaren munduko oinarriak, Errno ΠΈ WinError, I/O primitiboetarako erabiltzen direnak, iraganeko gauza bihurtzen ari dira salbuespen hierarkiari esker IO::Errorea (hala ere, inork ez du oraindik debekatzen Errno erabiltzea).

  • Operadoreari else nil ordezkapen automatikoa kendu zaio kasu/noiz/bestela. Hau garatzaileak adarren bat ustekabean salta ez dezan egiten da. denean enumak bezalako kasu deterministikoetan bat etortzean eta Union-eko motak igarotzean. Hau da, besterik gabe, kode honek ez du gehiago funtzionatuko beste bat zehaztu gabe denean (Char denean) edo zereginak bestela- adarrak:

a = 1 || 'x' || "foo"
kasua a
noiz Int32
# ...
denean String
# ...
amaiera

  • Konpilatzailearen aukera desgaitu_gainetik jada ez dago eskuragarri. Gaintze-eragiketetarako, erabili &+, &-, &* metodoak.

  • Array#bete orain bala bat baino azkarrago hegan egiten du, begizta ergela memset soil batekin ordezkatzeari esker;

  • Zatiren (paketeen) kudeatzailea, paradoxikoki, izenekoa puskak, orain CocoaPods-en (Swift) eta Builder-en (Ruby) aurkitutako Molinillo menpekotasun asetzeko algoritmo azkarrago eta eraginkorragoa erabiltzen du.

  • Laguntza gehitu LLVM 10, teorian produktibitatea, egonkortasuna, etab.

... eta beste hainbat, nire ustez subjektiboki, hobekuntza ez hain esanguratsuak.

Kontuan izan nahi dut Crystal LLVM-en gainean eraikitako lengoaia bat dela, eta, batzuetan, bere interpretatutako "anaietan" baino azkarrago, sinpleago eta zehatzago aplikazioak idazteko aukera ematen du, eta, aldi berean, bitar nahiko azkarra lortzeko. Golang-ekin alderatuta, bere OOP erabatekoa, generikoentzako laguntzagatik eta oso sintaxi sinple eta ulergarriagatik nabarmentzen da. Bere helburua Nim-en antzekoa da neurri handi batean, baina, aldi berean, argi eta garbi erabilera praktikora bideratua dago "hemen eta orain", horri esker, bere API arsenalean ondo dokumentatutako, eroso eta kalitate handiko tresna ugari ditu, eta horrek onartzen ditu. hizkuntza garatzaileak eta, beraz, oso egonkorra.

Iturria: linux.org.ru

Gehitu iruzkin berria