Megjelent a Crystal 0.34.0

Megjelent a Crystal új verziója, egy Ruby szintaxisú lefordított programozási nyelv, melynek fő jellemzői a futásidejű „beépített” eseményhurokkal, melyben minden I/O művelet aszinkron, többszálú feldolgozás támogatása (ameddig mivel azt a fordítás során egy zászló engedélyezi) és rendkívül egyszerű és kényelmes kezelés a C nyelvű könyvtárakkal.

A 0.34.0-s verziótól kezdődően a nyelv hivatalosan is elindul az első valódi kiadás (azaz az 1.0-s verzió) felé.

A Crystal új verziója a következő változtatásokat és fejlesztéseket tartalmazza fontossági sorrendben:

  • Új naplózási könyvtár került az API-ba Bejelentkezés, amely a régivel ellentétben különböző háttérrendszerekre képes üzeneteket küldeni, és a „forrástól” függően eltérően szűrni ezeket az üzeneteket.

  • Alapelemek a C fejlesztés világából, Errno и WinErrorAz I/O primitívekhez használt , a kivételhierarchiának köszönhetően a múlté válik IO::Hiba (az Errno használatát azonban még senki nem tiltja).

  • Eltávolítottuk az else nil automatikus helyettesítését a kezelőtől eset/mikor/máskor. Ez azért történik, hogy a fejlesztő véletlenül ne hagyja ki az egyik ágat. amikor determinisztikus esetek, például enumok párosítása és az Unió típusai közötti áthaladás. Vagyis leegyszerűsítve ez a kód már nem fog működni további egy megadása nélkül amikor (amikor Char) vagy feladatokat más-ágak:

a = 1 || "x" || "foo"
eset a
amikor az Int32
#…
amikor String
#…
végén

  • Fordító opció disable_overflow nem áll rendelkezésre. A túlcsordulási műveletekhez használja a &+, &-, &* metódusokat.

  • Tömb#kitöltés most gyorsabban repül, mint egy golyó, köszönhetően annak, hogy a hülye hurkot egyetlen egyszerű memkészletre cserélték;

  • A szilánkok (csomagok) menedzsere, paradox módon szilánkok, mostantól a CocoaPods (Swift) és a Builder (Ruby) szoftverekben található gyorsabb és hatékonyabb Molinillo-függőségi elégedettségi algoritmust használja.

  • Hozzáadott támogatás LLVM 10, ami elméletileg némileg növeli a termelékenységet, a stabilitást stb.

... és sok más, szubjektív véleményem szerint kevésbé jelentős fejlesztés.

Szeretném megjegyezni, hogy a Crystal egy LLVM-re épített nyelv, amellyel néha gyorsabban, egyszerűbben és tömörebben írhatunk alkalmazásokat, mint az értelmezett „testvérei”, és egyúttal elég gyors binárist is kaphatunk ennek eredményeként. A Golanghoz képest az abszolút teljes értékű OOP, a generikusok támogatása, valamint a nagyon egyszerű és érthető szintaxis miatt tűnik ki. Célja nagymértékben hasonlít a Nim-hez, ugyanakkor egyértelműen a gyakorlati felhasználásra fókuszál „itt és most”, aminek köszönhetően API-arzenáljában számos jól dokumentált, kényelmes és jó minőségű eszköz található, amelyeket a nyelvfejlesztők, ezért nagyon stabil.

Forrás: linux.org.ru

Hozzászólás