ĂshtĂ« publikuar njĂ« version i ri i Crystal, njĂ« gjuhĂ« programimi e kompiluar me sintaksĂ« Ruby, veçoritĂ« kryesore tĂ« sĂ« cilĂ«s janĂ« runtime me event loop tĂ« «integruar», ku tĂ« gjitha operacionet e hyrje-daljes janĂ« asinkrone, mbĂ«shtetje pĂ«r multithreading (aktualisht aktivizohet me njĂ« flamur gjatĂ« kompilimit) dhe punĂ« jashtĂ«zakonisht e thjeshtĂ« e komode me bibliotekat C.
Duke filluar nga versioni 0.34.0, gjuha nis zyrtarisht të ecë me vendosmëri drejt publikimit të parë të vërtetë (pra, versionit 1.0).
Në versionin e ri të Crystal mund të veçohen ndryshimet dhe përmirësimet e mëposhtme sipas rëndësisë së tyre:
NĂ« API Ă«shtĂ« shtuar njĂ« bibliotekĂ« e re logimi Log, e cila, ndryshe nga e vjetra, mund tĂ« dĂ«rgojĂ« mesazhe nĂ« backend-e tĂ« ndryshme dhe tâi filtrojĂ« ato nĂ« mĂ«nyra tĂ« ndryshme nĂ« varĂ«si tĂ« «burimit».
Mbeturinat nga bota e zhvillimit në C, Errno dhe WinError, që përdoreshin për primitivët e hyrje-daljes, po i lënë vendin së shkuarës falë hierarkisë së përjashtimeve IO::Error (megjithatë, përdorimi i Errno ende nuk është i ndaluar).
ĂshtĂ« hequr zĂ«vendĂ«simi automatik i else nil nga operatori case/when/else. Kjo Ă«shtĂ« bĂ«rĂ« pĂ«r tĂ« pĂ«rjashtuar lĂ«nien aksidentale nga zhvilluesi tĂ« njĂ« prej degĂ«ve when gjatĂ« pĂ«rputhjes sĂ« rasteve deterministe si enum-et dhe kalimit nĂ«pĂ«r llojet nga Union. Me fjalĂ« tĂ« thjeshta, kodi i mĂ«poshtĂ«m nuk do tĂ« funksionojĂ« mĂ« pa specifikuar edhe njĂ« when (when Char) ose pa pĂ«rcaktuar degĂ«n else-else:
a = 1 || âxâ || "foo"
case a
when Int32
# âŠ
when String
# âŠ
end
Opsioni i kompiluesit disable_overflow nuk është më i disponueshëm. Për operacione me overflow përdorni metodat &+, &-, &*.
Array#fill tani është më i shpejtë se plumbi, falë zëvendësimit të ciklit të rëndomtë me një memset të vetëm të thjeshtë;
Menaxheri i shards (paketave), që paradoksalisht quhen shards, tani përdor algoritmin më të shpejtë dhe më efikas Molinillo për zgjidhjen e varësive, i huazuar nga CocoaPods (Swift) dhe Builder (Ruby).
Shtuar mbështetje LLVM 10, që teorikisht duhet të sjellë një rritje të performancës, stabilitetit, etj.
⊠dhe shumë përmirësime të tjera, sipas mendimit tim subjektiv, më pak thelbësore.
Vlen tĂ« theksohet se Crystal Ă«shtĂ« njĂ« gjuhĂ« e ndĂ«rtuar mbi LLVM, qĂ« ju lejon tĂ« shkruani aplikacione ndonjĂ«herĂ« mĂ« shpejt, mĂ« thjesht dhe mĂ« nĂ« mĂ«nyrĂ« mĂ« tĂ« pĂ«rmbledhur se sa me âsimotratâ e saj tĂ« interpretuara, duke prodhuar njĂ« binar mjaft tĂ« shpejtĂ«. Krahasuar me Golang, dallohet pĂ«r OOP plotĂ«sisht funksional, mbĂ«shtetje pĂ«r generics dhe njĂ« sintaksĂ« shumĂ« tĂ« thjeshtĂ« e tĂ« kuptueshme. PĂ«r nga qĂ«llimi i pĂ«rdorimit, nĂ« shumĂ« aspekte i ngjan Nim, por Ă«shtĂ« i orientuar qartĂ« drejt pĂ«rdorimit praktik âkĂ«tu dhe taniâ, prandaj nĂ« arsenalin e vet API ka shumĂ« mjete tĂ« pĂ«rshtatshme e cilĂ«sore, me dokumentim tĂ« mirĂ«, tĂ« mbĂ«shtetura nga zhvilluesit e gjuhĂ«s dhe pĂ«r kĂ«tĂ« arsye mjaft tĂ« qĂ«ndrueshme.
Burimi: linux.org.ru
