È uscita Crystal 0.34.0

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

Con la versione 0.34.0, il linguaggio inizia ufficialmente a muoversi con fermezza verso il primo reale rilascio (cioè la versione 1.0).

Nella nuova versione di Crystal si possono notare le seguenti modifiche e miglioramenti in ordine di importanza:

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

  • Rudimenti dal mondo dello sviluppo in C, Errno e WinError, utilizzati per i primitivi di input/output, stanno scomparendo grazie alla gerarchia delle eccezioni IO::Error (peraltro, al momento, nessuno vieta di utilizzare Errno).

  • È stata rimossa l'inserzione automatica di else nil dall'operatore case/when/else. Questo è stato fatto per escludere la possibilità che uno sviluppatore possa accidentalmente saltare uno dei rami. when nel matching dei casi deterministici, come gli enum, e nel passaggio tra i tipi in un Union. In altre parole, codici come questo non funzioneranno più senza l'indicazione di un altro when (when Char) o assegnazione else- ramo:

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

  • Opzione del compilatore disable_overflow non è più disponibile. Per le 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 gestore di shard (pacchetti), che si chiama, paradossalmente, shards, ora utilizza un algoritmo più veloce ed efficiente per la risoluzione delle dipendenze, Molinillo, ispirato a CocoaPods (Swift) e Builder (Ruby).

  • Aggiunto supporto per LLVM 10, il che dovrebbe darci un certo aumento di prestazioni, stabilità, ecc.

… e molte altre migliorie, a mio avviso, meno significative.

Vorrei sottolineare che Crystal è un linguaggio basato su LLVM, che permette di scrivere applicazioni talvolta più rapidamente, facilmente e in modo conciso rispetto ai suoi 'fratelli' interpretati, generando all'uscita un binario piuttosto veloce. Si distingue da Golang per un supporto OOP completo, per il supporto ai generics e per una sintassi molto semplice e chiara. Per scopo, è in gran parte analogo a Nim, ma è chiaramente orientato all'applicazione pratica 'qui e ora', il che gli consente di avere nel proprio arsenale API un gran numero di strumenti comodi, ben documentati e di qualità, supportati dagli sviluppatori del linguaggio e quindi molto stabili.

Fonte: linux.org.ru

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