A ieșit o nouă versiune Crystal, un limbaj de programare compilat cu sintaxă Ruby, a cărui caracteristici principale sunt un runtime cu un event loop „încorporat”, în care toate operațiunile de intrare-ieșire sunt asincrone, suport pentru multithreading (deocamdată activat printr-un flag la compilare) și o muncă extrem de simplă și convenabilă cu bibliotecile C.
Începând cu versiunea 0.34.0, limbajul începe oficial o avansare hotărâtă spre prima versiune reală (adică versiunea 1.0).
În noua versiune Crystal pot fi menționate următoarele modificări și îmbunătățiri, în ordinea importanței:
A fost adăugată o nouă bibliotecă de jurnalizare în API Log, care, spre deosebire de cea veche, poate direcționa mesajele către diferite backend-uri și le poate filtra diferit în funcție de „sursă”.
Rudimentele din lumea dezvoltării în C, Errno și WinError, utilizate pentru primitivele de intrare-ieșire, devin parte a trecutului datorită ierarhiei de excepții IO::Error (totuși, nimeni nu interzice deocamdată folosirea Errno).
Se elimină substituția automată a lui else nil din operatorul case/when/else. Acest lucru este realizat pentru a exclude omisiunea accidentală de către dezvoltator a uneia dintre ramuri when în cazul potrivirii pentru cazuri determinate, precum enum-uri și parcurse prin tipuri din Union. Adică, pe scurt, un astfel de cod nu va mai funcționa fără specificarea unei alte when (when Char) sau a unei ramuri: altfela = 1 || 'x' || "foo"
case a
when Int32
when String
# …
Opțiunea compilatorului
# …
end
disable_overflow nu mai este disponibilă. Pentru operațiunile cu depășiri, utilizați metodele &+, &-, &*. Array#fill
acum funcționează mai repede decât o minge de tun, datorită înlocuirii buclei mai lente cu un simplu memset; Managerul de pachete, numit, paradoxal,
shards , acum folosește un algoritm mai rapid și eficient Molinillo pentru satisfacerea dependențelor, inspirat din CocoaPods (Swift) și Builder (Ruby)., care teoretic ne va oferi o oarecare creștere a performanței, stabilității etc.
A fost adăugat suport pentru LLVM 10… și multe alte îmbunătățiri, care, în opinia mea subiectivă, sunt mai puțin semnificative.
… și multe alte îmbunătățiri, care, din punctul meu de vedere subiectiv, sunt mai puțin semnificative.
Este important de menționat că Crystal este un limbaj construit pe LLVM, care permite scrierea aplicațiilor uneori mai rapid, mai simplu și mai concis decât în frații săi interpretati, obținând totodată un binary destul de rapid la ieșire. Comparativ cu Golang, Crystal se distinge printr-un OOP complet, suport pentru generice și o sintaxă foarte simplă și ușor de înțeles. În mare măsură, își găsește asemănarea în ceea ce privește scopul cu Nim, dar este în mod evident orientat spre utilizarea practică 'aici și acum', motiv pentru care are în arsenalul său API multe instrumente bine documentate, convenabile și de calitate, susținute de dezvoltatorii limbajului și, prin urmare, destul de stabile.
Sursa: linux.org.ru
