Rilasciato Crystal 0.34.0

È stata rilasciata una nuova versione di Crystal, un linguaggio di programmazione compilato con sintassi Ruby, le cui caratteristiche principali sono il runtime con un event loop “incorporato”, in cui tutte le operazioni di I/O sono asincrone, il supporto per il multithreading (a patto che in quanto abilitato da un flag in fase di compilazione) ed estremamente semplice e comodo il funzionamento con le librerie in C.

A partire dalla versione 0.34.0, il linguaggio inizia ufficialmente a muoversi verso la sua prima vera release (ovvero la versione 1.0).

La nuova versione di Crystal include le seguenti modifiche e miglioramenti in ordine di importanza:

  • Una nuova libreria di registrazione è stata aggiunta all'API Log, che, a differenza del vecchio, può inviare messaggi a backend diversi e filtrare questi messaggi in modo diverso a seconda della “fonte”.

  • Rudimenti dal mondo dello sviluppo C, Errno и WinError, utilizzati per le primitive di I/O, stanno diventando un ricordo del passato grazie alla gerarchia delle eccezioni IO::Errore (tuttavia nessuno vieta ancora di usare Errno).

  • Rimossa la sostituzione automatica di else nil dall'operatore caso/quando/altro. Questo viene fatto per evitare che lo sviluppatore salti accidentalmente uno dei rami. quando durante la corrispondenza su casi deterministici come enumerazioni e il passaggio attraverso tipi da Union. Cioè, in poche parole, questo codice non funzionerà più senza specificarne uno in più quando (quando Char) o attività altro-rami:

a = 1 || 'x' || "pippo"
caso A
quando Int32
# ...
quando Stringa
# ...
fine

  • Opzione del compilatore disabilita_overflow non più disponibile. Per le operazioni di overflow, utilizzare i metodi &+, &-, &*.

  • Array#riempimento ora vola più veloce di un proiettile, grazie alla sostituzione dello stupido loop con un semplice memset;

  • Gestore di shard (pacchetti), chiamato, paradossalmente, cocci, ora utilizza l'algoritmo di soddisfazione delle dipendenze Molinillo più veloce ed efficiente presente in CocoaPods (Swift) e Builder (Ruby).

  • Aggiunto supporto LLVM 10, che in teoria ci darà un certo aumento di produttività, stabilità, ecc.

... e molti altri miglioramenti, a mio parere soggettivo, meno significativi.

Vorrei sottolineare che Crystal è un linguaggio costruito su LLVM, che consente di scrivere applicazioni a volte più velocemente, in modo più semplice e conciso rispetto ai suoi "fratelli" interpretati, e allo stesso tempo ottenere di conseguenza un binario abbastanza veloce. Rispetto a Golang, si distingue per la sua OOP assolutamente completa, il supporto per i generici e una sintassi molto semplice e comprensibile. Il suo scopo è in gran parte simile a Nim, ma allo stesso tempo è chiaramente focalizzato sull'uso pratico “qui e ora”, grazie al quale ha nel suo arsenale API molti strumenti ben documentati, convenienti e di alta qualità, supportati dal sviluppatori di linguaggi e quindi molto stabile.

Fonte: linux.org.ru

Aggiungi un commento