Ruby 1.9, lo spirito del Natale futuro

Preciso come un orologio svizzero, anzi, giapponese, Yukihiro “Matz” Matsumoto ed il suo team hanno annunciato il rilascio di Ruby 1.9 il giorno di Natale, mantenendo la consuetudine nata con la versione 1.8.2, rilasciata il 25 Dicembre 2004.

La versione 1.9 è stata attesa a lungo da tutti gli amanti del linguaggio nato nella terra del sol levante, perché introduce per la prima volta al mondo la nuova virtual machine, che promette di risolvere una grossa fetta dei problemi di performance di cui Ruby, spesso a ragione, viene accusato.

Come già verificato dal nostro Antonio Cangiano sembra proprio che YARV, la nuova virtual machine nota anche come Rite, abbia mantenuto le promesse di Matz. Tra le maggiori feature introdotte da Ruby 1.9 ci sono anche l’eliminazione dei green thread in favore di thread nativi (pthread) con Global Interpreter Lock (GIL) e l’aggiunta del supporto per Unicode, associando un encoding alle stringhe e permettendo conversioni di formato (transcoding).

Le novità in Ruby 1.9 però non finiscono qui: per gli amanti dei dettagli c’è la lista completa delle modifiche apportate nella versione 1.9; per coloro che hanno più tempo c’è il ChangeLog dettagliato; a tutti gli altri consiglio la lettura di questo articolo che riassume le modifiche principali che hanno un impatto sulla vita di noi programmatori. Per quanto mi riguarda, a parte l’ovvia esaltazione per via della nuova virtual machine, sono contento di alcune modifiche minori, come la nuova sintassi degli Hash, l’introduzione delle Fibers, e la nuova rappresentazione dei caratteri, che al posto di interi vengono rappresentati come stringhe di lunghezza unitaria. 

Quella di oggi è comunque una development release ovvero, leggendo tra le righe, una versione con bug attualmente irrisolti che non è ancora adatta ad un uso in produzione. Lo scopo principale del rilascio è quello di permettere agli autori di librerie, gemme, programmi e framework, di adattarli per quando una versione stabile e production-ready sarà pronta tra qualche mese. Ad esempio, Rails 2 e Mongrel, rispettivamente il framework web e il webserver più usati nella comunità Ruby, non sono ancora pronti ad utilizzare la versione 1.9 che introduce diverse incompatibilità con la precedente (1.8.6). Nonostante ciò, anche quest’anno i programmatori Ruby hanno ricevuto il loro regalo di Natale da un insolito Babbo Natale giapponese.

(A cura di Antonio Cangiano e Giovanni Intini)

About Antonio Cangiano

Antonio lavora come Software Engineer & Technical Evangelist presso la IBM in Canada. È inoltre il direttore di Stacktrace.it, un internet marketing strategist, imprenditore del web, serial blogger, e autore di un paio di libri in inglese (recentemente Technical Blogging.) Puoi dare un'occhiata ai suoi progetti sulla sua homepage e seguendolo su Twitter.

Comments

  1. Un altro documento che può tornare utile ed è stato incluso nel trunk poche ore prima del rilascio è questo, la differenza con la lista (dettagliata) di Mauricio Fernandez è che tutti i cambiamenti sono stati divisi in ciò che maniente la compatibilità e ciò che la rompe.

  2. ma vaii! è rimasta la mia feature preferita
    .() and calling Procs without #call/#[], aka “finalmente sono carino quanto
    python”
    😀

  3. Spettacolo, non vedo l’ora di iniziare a studiarlo… anche se devo ancora capire un paio di cose a proposito di questo linguaggio che sempre più sta prendendo piede e del framework RoR.
    Essendo io un coder vecchia scuola (php js ajax mysql) da un paio di anni apprezzo i vantaggi della programmazione ad oggetti, mi sconfinfera parecchio il fatto che su ruby tutto è un oggetto… non vedo l’ora di trovare un paio di minuti per mettermi sotto.

    Ciao e complimenti per il blog!

  4. Evvai. 😀

    Ora vedo se riesco a trovare un attimo per fare girare qualche applicativo che ho qui… 😀

    Ora vado a spulciarmi tutti i changelog linkati… se han risolto anche i deficit che ritenevo esistenti a livello di syntax sugar son contento. E già uno mi ha confermato riffraff che è risolto. 😀 😀 😀

  5. Mi unisco all’impegno di Antonio, e conto quindi di ricavarmi quanto prima un pò di tempo per studiare un pò questo linguaggio che sembra piuttosto interessante.

    Complimenti per il sito, è entrato di diritto nelle mie home page personali.

Policy per i commenti: Apprezzo moltissimo i vostri commenti, critiche incluse. Per evitare spam e troll, e far rimanere il discorso civile, i commenti sono moderati e prontamente approvati poco dopo il loro invio.