Ruby 3.0.0, un aggiornamento dell’amato linguaggio dinamico open source, è arrivato come release di produzione il giorno di Natale. I punti salienti della nuova versione includono l’esecuzione parallela e le capacità di descrizione dei tipi.
L’esecuzione parallela arriva sotto forma di una caratteristica sperimentale soprannominata “Ractor”, che è un’astrazione di concurrency simile a Actor-model intesa a fornire un’esecuzione parallela senza problemi di sicurezza dei thread. Gli sviluppatori possono creare più rettori ed eseguirli in parallelo. Questi programmi paralleli possono essere resi sicuri dai thread perché i trattori non possono condividere oggetti normali. La comunicazione tra i trattori è supportata dal message-passing. Tuttavia, per limitare la condivisione di oggetti, Ractor introduce restrizioni alla sintassi di Ruby.
Ruby 3.0.0 introduce anche RBS, pubblicizzato come un linguaggio per descrivere i tipi di programmi Ruby. Ruby 3.0.0 è fornito con il gem rbs
, che permette l’analisi e l’elaborazione delle definizioni di tipo scritte in RBS. I controllori di tipo, compresi i profilatori di tipo e altri strumenti che supportano RBS, capiranno meglio i programmi Ruby con le definizioni RBS.
RBS è inteso a supportare i modelli comunemente visti nei programmi Ruby. Possono essere scritti tipi avanzati, inclusi tipi di unione, sovraccarico di metodi e generici. È supportata anche la tipizzazione dell’anatra con tipi di interfaccia.
Oltre a Ractor e RBS, Ruby 3.0.0 offre una serie di altre capacità:
- Fiber#scheduler, per intercettare operazioni bloccanti. Precedentemente identificata come
Thread#scheduler
, la capacità permette una concorrenza leggera senza cambiare il codice esistente. - Memory view, un’altra caratteristica sperimentale, è un set C-API per scambiare un’area di memoria grezza, come un array numerico o un’immagine bitmap, tra librerie di estensione. Queste librerie possono anche condividere i metadati dell’area di memoria che consiste nella forma, la forma dell’elemento, ecc.
- Prestazioni migliorate nel compilatore Ruby MJIT (Method-based Just In Time).
- Separazione degli argomenti delle parole chiave dagli altri argomenti.
-
Hash#except
integrato. - Una dichiarazione di assegnazione verso destra.
- Una definizione di metodo infinita.
- L’aggiunta del modello find.
Gli sviluppatori possono scaricare Ruby 3.0.0 da ruby-lang.org. Ruby 3.0.0 è stato presentato in anteprima il 25 settembre 2020. Questa è stata seguita da una successiva anteprima l’8 dicembre e da una release candidate il 20 dicembre.