Crystal 0.34.0 er udgivet

Den nye version af Crystal, et kompilérbart programmeringssprog med Ruby-syntaks, har hovedfunktioner som en runtime med en "indbygget" event loop, hvor alle input-output-operationer er asynkrone, støtte til multithreading (som endnu skal aktiveres med en flag ved kompilering) samt en ekstremt enkel og brugervenlig tilgang til biblioteker skrevet i C.

Fra version 0.34.0 begynder sproget officielt at bevæge sig med hurtigt skridt mod dets første reelle udgave (dvs. version 1.0).

I den nye version af Crystal kan følgende ændringer og forbedringer bemærkes i rækkefølge efter betydning:

  • En ny logging-bibliotek er tilføjet til API'en Log, som, modsat den gamle, kan dirigere beskeder til forskellige backends og filtrere disse beskeder forskelligt afhængigt af "kilden".

  • Rester fra C-udviklingsverdenen, Errno og WinError, som blev brugt til primitive input-output-operationer, er ved at forsvinde takket være hierarkiet af undtagelser IO::Error (ingen bruger dog endnu Errno).

  • Automatisk indsættelse af else nil er fjernet fra operatoren case/when/else. Dette er gjort for at udelukke tilfældige spring fra udviklerens side af en af ​​grenene block ved matchning af bestemte tilfælde som enums og gennemgang af typer fra Union. Det vil sige, kort sagt, at sådan kode ikke længere vil fungere uden angivelse af en ekstra block (when Char) eller oprettelse af en ellers-gren:

a = 1 || ‘x’ || "foo"
case a
when Int32
# …
when String
# …
end

  • Kompilatorindstillingen disable_overflow er ikke længere tilgængelig. Brug metoderne &+, &-, &* til at udføre operationer med overløb.

  • Array#fill flyver nu hurtigere end en kugle, takket være udskiftningen af den dumme løkke med en enkel memset;

  • Shard-manageren, der kaldes, som det paradoksalt nok er, shards, bruger nu en hurtigere og mere effektiv algoritme til afhængighedshåndtering, Molinillo, som er inspireret af CocoaPods (Swift) og Builder (Ruby).

  • Tilføjet support for LLVM 10, som i teorien vil give os en vis stigning i ydeevne, stabilitet osv.

… og mange andre, efter min subjektive mening, mindre væsentlige forbedringer.

Det er værd at bemærke, at Crystal er et sprog bygget på LLVM, der gør det muligt at skrive applikationer hurtigere, enklere og mere konsistent end med dets tolkede "slægtninge", samtidig med at der produceres en ret hurtig binær fil. I forhold til Golang skiller det sig ud med fuldgyldig OOP, understøttelse af generics og et meget enkelt og forståeligt syntaks. Dets formål er i høj grad sammenligneligt med Nim, men det er tydeligt rettet mod praktisk anvendelse "her og nu", hvilket gør, at det har et API-arsenal med mange vel dokumenterede, brugervenlige og kvalitetsværktøjer, som understøttes af sprogets udviklere og derfor er ret stabile.

Kilde: linux.org.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster