Vydán Crystal 0.34.0

Byla vydána nová verze Crystal, zkompilovaný programovací jazyk se syntaxí Ruby, jehož hlavními rysy jsou runtime s „vestavěnou“ smyčkou událostí, ve které jsou všechny I/O operace asynchronní, podpora multithreadingu (pokud protože to umožňuje příznak při kompilaci) a extrémně jednoduché a pohodlné ovládání s knihovnami v C.

Počínaje verzí 0.34.0 se jazyk oficiálně začíná posouvat ke svému prvnímu skutečnému vydání (tj. verzi 1.0).

Nová verze Crystal obsahuje následující změny a vylepšení v pořadí důležitosti:

  • Do API byla přidána nová knihovna protokolování Log, který na rozdíl od starého umí odesílat zprávy na různé backendy a tyto zprávy různě filtrovat v závislosti na „zdroji“.

  • Základy ze světa vývoje C, Errno и WinError, používané pro I/O primitiva, se díky hierarchii výjimek stávají minulostí IO::Chyba (Errno však zatím nikdo nezakazuje).

  • Odstraněno automatické nahrazování else nil od operátora případ/kdy/jinak. To se provádí proto, aby vývojář omylem nepřeskočil jednu z větví. kdy při porovnávání na deterministických případech, jako jsou výčty, a procházení typů z unie. To znamená, že jednoduše řečeno, tento kód již nebude fungovat bez uvedení jednoho dalšího kdy (když Char) nebo úkoly jiný- pobočky:

a = 1 || 'x' || "foo"
případ a
když Int32
#…
když String
#…
konec

  • Možnost kompilátoru disable_overflow již není k dispozici. Pro operace přetečení použijte metody &+, &-, &*.

  • Pole#fill nyní létá rychleji než kulka díky nahrazení hloupé smyčky jedním jednoduchým memsetem;

  • Správce střepů (balíčků), zvaný paradoxně střepy, nyní používá rychlejší a efektivnější algoritmus uspokojení závislosti Molinillo, který se nachází v CocoaPods (Swift) a Builder (Ruby).

  • Přidána podpora LLVM 10, což nám teoreticky poskytne určité zvýšení produktivity, stability atd.

... a mnoho dalších, dle mého subjektivního názoru, méně výrazných vylepšení.

Chtěl bych poznamenat, že Crystal je jazyk postavený na LLVM, který vám umožňuje psát aplikace někdy rychleji, jednodušeji a výstižněji než na jeho interpretovaných „bratřích“ a zároveň ve výsledku získat poměrně rychlou binárku. Oproti Golangu vyniká naprosto plnohodnotným OOP, podporou generik a velmi jednoduchou a srozumitelnou syntaxí. Jeho účel je do značné míry podobný Nimu, ale zároveň je jednoznačně zaměřen na praktické využití „tady a teď“, díky čemuž má ve svém API arzenálu mnoho dobře zdokumentovaných, pohodlných a kvalitních nástrojů, podpořených např. vývojáři jazyků, a proto velmi stabilní.

Zdroj: linux.org.ru

Přidat komentář