Izdana je Crystal 0.34.0

Izšla je nova različica Crystal, programskega jezika s sintakso Ruby, katere glavne značilnosti so: runtime z 'vgrajenim' event loopom, v katerem so vse operacije vhod/izhod asinhrone, podpora za večnitnost (trenutno se aktivira s flagom pri prevajanju) in izjemno preprosto ter udobno delo z knjižnicami v C-ju.

Od različice 0.34.0 se je jezik uradno začel z odločnim korakom pomikati proti prvemu pravemu sprostitvi (tj. različici 1.0).

V novi različici Crystal lahko opazimo naslednje spremembe in izboljšave v vrstnem redu njihove pomembnosti:

  • V API je dodana nova knjižnica za dnevnik Log, ki, za razliko od stare, omogoča usmerjanje sporočil v različne backend-e ter različno filtriranje teh sporočil glede na 'vir'.

  • Rudimenti iz sveta C-programiranja, Errno in WinError, ki so se uporabljali za primitivne operacije vhod/izhod, odhajajo v preteklost zahvaljujoč hierarhiji izjem IO::Error (vendar pa nihče zaenkrat ne prepoveduje uporabe Errno).

  • Samodejna vstavitev else nil iz operatorja case/when/else. To je bilo storjeno, da bi se izognili naključnemu preskakovanju ene od vej s strani razvijalca when pri ujemanju z določenimi primeri, kot so enum-i in prehod skozi tipe iz Unije. Z drugimi besedami, takšen koda ne bo več delovala brez navedenih dodatnih when (when Char) ali določanja else-veje:

a = 1 || 'x' || "foo"
case a
when Int32
# …
when String
# …
end

  • Možnost prevajalnika disable_overflow ni več na voljo. Za operacije s prelivanjem uporabite metode &+, &-, &*.

  • Array#fill zdaj leti hitreje od krogle, zahvaljujoč zamenjavi neintuitivnega cikla z enim preprostim memsetom;

  • Menjalnik shardov (paketov), ki se imenuje, kot to paradoksalno je, shards, zdaj uporablja hitrejši in učinkovitejši algoritem za zadovoljitev odvisnosti Molinillo, opazovan v CocoaPods (Swift) in Builder (Ruby).

  • Dodana je podpora za LLVM 10, kar naj bi nam po ideji prineslo povečanje zmogljivosti, stabilnosti, itd.

… in vrsto drugih, po mojem subjektivnem mnenju, manj pomembnih izboljšav.

Treba omeniti da je Crystal jezik zasnovan na LLVM-u, koji omogućava pisanje aplikacija brže, lakše i sažetije nego njegove interpretirane "rođake", a pritom se dobija prilično brz binačni fajl. U poređenju sa Golang-om, izdvojio se kao potpuno funkcionalan OOP, sa podrškom za generičke tipove i veoma jednostavnom i razumljivom sintaksom. Po svom značenju je mnogo sličan Nimu, ali je jasno orijentisan na praktičnu upotrebu "ovde i sada", zbog čega u svom API arsenalu ima mnoštvo dobro dokumentovanih, praktičnih i kvalitetnih alata, podržanih od strane developera jezika i samim tim veoma stabilnih.

Izvor: linux.org.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster