Välja antud Crystal 0.34.0

Välja on antud Crystali uus versioon, Ruby süntaksiga kompileeritud programmeerimiskeel, mille peamisteks omadusteks on "sisseehitatud" sündmusetsükliga käitusaeg, milles kõik I/O toimingud on asünkroonsed, mitme lõimestamise tugi (nii kaua kuna see on kompileerimise ajal lubatud lipuga) ning äärmiselt lihtne ja mugav kasutamine C-vormingus raamatukogudega.

Alates versioonist 0.34.0 hakkab keel ametlikult liikuma oma esimese tegeliku väljalaske (st versioon 1.0) poole.

Crystali uus versioon sisaldab järgmisi muudatusi ja täiustusi tähtsuse järjekorras:

  • API-le on lisatud uus logimisteek Logi, mis erinevalt vanast saab saata sõnumeid erinevatele taustaprogrammidele ja neid sõnumeid erinevalt filtreerida sõltuvalt “allikast”.

  • Alused C-arendusmaailmast, Errno и WinError, mida kasutatakse I/O primitiivide jaoks, on tänu erandihierarhiale saamas minevikku IO::Viga (Samas ei keela keegi veel Errno kasutamist).

  • Eemaldati operaatorilt nulli automaatne asendamine juhtum/millal/muu. Seda tehakse selleks, et arendaja ei jätaks kogemata ühte haru vahele. millal deterministlike juhtumite (nt enumid) sobitamisel ja Unioni tüüpide läbimisel. See tähendab, et lihtsalt öeldes ei tööta see kood enam ilma täiendavat määramata millal (kui Char) või ülesandeid teine- filiaalid:

a = 1 || 'x' || "foo"
juhtum a
kui Int32
#…
kui String
#…
lõpp

  • Kompilaatori valik disable_overflow ei ole enam saadaval. Ületäitetoimingute jaoks kasutage meetodeid &+, &-, &*.

  • Massiiv#täitke lendab nüüd kiiremini kui kuul, tänu rumala silmuse asendamisele ühe lihtsa memsetiga;

  • Kildude (pakettide) haldur, mida nimetatakse paradoksaalsel kombel kildad, kasutab nüüd kiiremat ja tõhusamat Molinillo sõltuvusega rahulolu algoritmi, mis on leitud CocoaPodsist (Swift) ja Builderist (Ruby).

  • Lisatud tugi LLVM 10, mis teoreetiliselt suurendab tootlikkust, stabiilsust jne.

... ja palju muid, minu subjektiivse hinnangu kohaselt vähem olulisi parandusi.

Tahaksin märkida, et Crystal on LLVM-ile üles ehitatud keel, mis võimaldab kirjutada rakendusi mõnikord kiiremini, lihtsamalt ja sisutihedamalt kui selle tõlgendatud "vendadel" ja samal ajal saada selle tulemusel üsna kiire binaar. Võrreldes Golangiga paistab see silma oma absoluutselt täisväärtusliku OOP-i, geneeriliste ravimite toe ning väga lihtsa ja arusaadava süntaksi poolest. Selle eesmärk on suures osas sarnane Nimiga, kuid samas on see selgelt keskendunud praktilisele kasutamisele “siin ja praegu”, tänu millele on selle API arsenalis palju hästi dokumenteeritud, mugavaid ja kvaliteetseid tööriistu, mida toetab keelearendajad ja seetõttu väga stabiilne.

Allikas: linux.org.ru

Lisa kommentaar