Megjelent a Crystal új verziója, a Ruby szintaxisú fordított programozási nyelv, amelynek főbb jellemzői közé tartozik az „beépített” eseményhurokkal rendelkező futási idő, amelyben minden bemeneti-kimeneti művelet aszinkron, a párhuzamosság támogatása (jelenleg a fordítás során egy kapcsolóval aktiválható) és a C könyvtárakkal való rendkívül egyszerű és kényelmes munka.
A 0.34.0-ás verziótól kezdve a nyelv hivatalosan is határozott léptekkel elindul az első valódi kiadás (azaz 1.0 verzió) felé.
Az új Crystal verzióban a következő változások és fejlesztések emelhetők ki fontossági sorrendben:
Az API-hoz egy új naplózási könyvtár került hozzáadásra Log, amely ellentétben a régivel képes arra, hogy az üzeneteket különböző háttérszolgáltatásokhoz irányítsa, és különbözően szűrje azokat „forrás” szerint.
A C fejlesztés világából származó maradványok, Errno és WinError, amelyek a bemeneti-kimeneti primitívekhez használtak, a kivételkezelés hierarchiájának köszönhetően eltűnnek a múltból IO::Error (bár senki sem tiltotta meg, hogy az Errno-t használja).
Eltávolították az automatikus else nil beszúrást a case/when/elseutasításból. Ezt azért tették, hogy kizárják a véletlen kihagyást, amikor a fejlesztő egy ágat elmulaszt a determinált minták, például enumok és Unióból származó típusok mentén történő egyezéskor. Röviden, az alábbi kód többé nem fog működni további when (when Char) vagy egy when -ág megadásakor: elsea = 1 || 'x' || "foo"
case a
when Int32
when String
# …
A fordító opció
# …
end
disable_overflow többé nem érhető el. A túllépéses műveletekhez használjon &+, &-, &* metódusokat. Array#fill
mostantól gyorsabb, mint a golyó, egy primitív memset függvénnyel való helyettesítésnek köszönhetően; A shardkezelő (csomagok), amelyek, hogy paradox legyen,
shards , mostantól egy gyorsabb és hatékonyabb Molinillo függőség-satisfiáló algoritmust használ, amelyet a CocoaPods (Swift) és a Builder (Ruby) szemléltetett., ami elvileg teljesítménynövekedést és stabilitást fog eredményezni.
Támogatás került hozzáadásra LLVM 10… és számos más, véleményem szerint kevésbé lényeges fejlesztés.
… és sok más, az én szubjektív véleményem szerint, kevésbé lényeges fejlesztés.
Érdemes megjegyezni, hogy a Crystal egy LLVM alapú nyelv, amely lehetővé teszi, hogy alkalmazásokat néha gyorsabban, egyszerűbben és tömörebben írjunk, mint az értelmezett "rokonai", miközben viszonylag gyors bináris kimenetet kapunk. A Golanghoz képest teljes értékű objektumorientált programozást kínál, támogatja a generikus programozást, és rendkívül egyszerű és érthető szintaxissal rendelkezik. Hasonló célokra használják, mint a Nim, de egyértelműen a gyakorlati alkalmazásra
Forrás: linux.org.ru
