È uscito Crystal 0.34.0

È stata rilasciata una nuova versione di Crystal, un linguaggio di programmazione compilato con una sintassi simile a Ruby, le cui caratteristiche principali includono un runtime con un event loop "integrato", in cui tutte le operazioni di input-output sono asincrone, supporto per il multithreading (attualmente attivabile tramite un flag durante la compilazione) e un lavoro incredibilmente semplice e comodo con le librerie in C.

A partire dalla versione 0.34.0, il linguaggio inizia ufficialmente a muoversi a grandi passi verso il primo vero rilascio (cioè la versione 1.0).

Nella nuova versione di Crystal si possono notare i seguenti cambiamenti e miglioramenti in ordine di importanza:

  • È stata aggiunta una nuova libreria di logging all'API Log, che, a differenza della precedente, è in grado di indirizzare i messaggi verso diversi backend e di filtrare i messaggi in modi diversi a seconda della "fonte".

  • I rudimenti del mondo dello sviluppo in C, Errno e WinError, usati per i primitivi di input-output, stanno diventando un ricordo grazie alla gerarchia delle eccezioni IO::Error (tuttavia, finora nessuno ha vietato l'uso di Errno).

  • È stata rimossa l'aggiunta automatica di else nil dall'operatore case/when/else. Questo è stato fatto per escludere il salto accidentale da parte dello sviluppatore di uno dei rami when durante il matching su casi deterministici tipo enum e passaggi attraverso tipi di Union. In altre parole, un codice come questo non funzionerà più senza specificare un ulteriore when (when Char) o assegnare else-ramo:

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

  • L'opzione del compilatore disable_overflow non è più disponibile. Per operazioni di overflow, utilizzare i metodi &+, &-, &*.

  • Array#fill ora vola più veloce di un proiettile, grazie alla sostituzione di un ciclo poco efficiente con un semplice memset;

  • Il manager dei pacchetti, chiamato, paradossalmente, shards, ora utilizza un algoritmo di soddisfacimento delle dipendenze più veloce ed efficiente, Molinillo, preso in prestito da CocoaPods (Swift) e Builder (Ruby).

  • È stata aggiunta la supporto per LLVM 10, il che dovrebbe darci un certo aumento delle prestazioni, stabilità, ecc.

… e molti altri miglioramenti, a mio avviso, meno significativi.

Voglio sottolineare che Crystal è un linguaggio costruito su LLVM, che consente di scrivere applicazioni talvolta più velocemente, più semplicemente e in modo più conciso rispetto ai suoi "fratelli" interpretati, e di ottenere un binario piuttosto rapido. Rispetto a Golang, si distingue per un OOP completamente completo, supporto per generics e una sintassi molto semplice e comprensibile. Per la sua destinazione è in gran parte analogo a Nim, ma è chiaramente orientato all'applicazione pratica "qui e ora", motivo per cui ha nel suo arsenale API molti strumenti ben documentati, facili da usare e di qualità, supportati dagli sviluppatori del linguaggio e quindi piuttosto stabili.

Fonte: linux.org.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster