Crystal 0.34.0 izdan

Izdana je bila nova različica Crystal, preveden programski jezik s sintakso Ruby, katerega glavne značilnosti so čas izvajanja z "vgrajeno" zanko dogodkov, v kateri so vse V/I operacije asinhrone, podpora za večnitnost (dokler saj je omogočena z zastavico med prevajanjem) in izjemno preprosto in priročno upravljanje s knjižnicami v C.

Z različico 0.34.0 se jezik uradno približuje svoji prvi pravi izdaji (tj. različici 1.0).

Nova različica Crystal vključuje naslednje spremembe in izboljšave po pomembnosti:

  • V API je bila dodana nova knjižnica za beleženje Dnevnik, ki za razliko od starega lahko pošilja sporočila različnim zaledjem in ta sporočila različno filtrira glede na “vir”.

  • Zametki iz sveta razvoja C, Errno и WinError, ki se uporabljajo za V/I primitive, zaradi hierarhije izjem postajajo stvar preteklosti IO::Napaka (vendar še nihče ne prepoveduje uporabe Errna).

  • Iz operaterja je odstranjena samodejna zamenjava else nil primer/kdaj/drugače. To se naredi, da preprečimo, da bi razvijalec pomotoma preskočil eno od vej. kdaj pri ujemanju determinističnih primerov, kot so enumi, in prehod skozi tipe iz Union. Preprosto povedano, ta koda ne bo več delovala, če ne navedete še ene kdaj (ko je Char) ali naloge ostalo- veje:

a = 1 || 'x' || "foo"
primer a
ko je Int32
#…
ko String
#…
konec

  • Možnost prevajalnika onemogoči_prelivanje ni več na voljo. Za operacije prelivanja uporabite metode &+, &-, &*.

  • Niz#polnilo zdaj leti hitreje kot krogla, zahvaljujoč zamenjavi neumne zanke z enim preprostim memsetom;

  • Upravitelj drobcev (paketov), ​​imenovan, paradoksalno, drobci, zdaj uporablja hitrejši in učinkovitejši algoritem zadovoljstva odvisnosti Molinillo, ki ga najdemo v CocoaPods (Swift) in Builder (Ruby).

  • Dodana podpora LLVM 10, kar nam bo v teoriji dalo nekaj povečanja produktivnosti, stabilnosti itd.

... in še veliko drugih, po mojem subjektivnem mnenju manj pomembnih izboljšav.

Rad bi omenil, da je Crystal jezik, zgrajen na LLVM, ki vam omogoča pisanje aplikacij včasih hitreje, enostavneje in bolj jedrnato kot na njegovih interpretiranih "bratih", hkrati pa kot rezultat dobite precej hitro binarno datoteko. V primerjavi z Golangom izstopa po popolnoma polnem OOP, podpori za generike ter zelo preprosti in razumljivi sintaksi. Njegov namen je v veliki meri podoben Nimu, hkrati pa je jasno osredotočen na praktično uporabo »tukaj in zdaj«, zahvaljujoč čemur ima v svojem arzenalu API veliko dobro dokumentiranih, priročnih in kakovostnih orodij, ki jih podpira razvijalci jezikov in zato zelo stabilen.

Vir: linux.org.ru

Dodaj komentar