Interrompo la pausa natalizia per una novità che senz'altro interesserà a molti lettori appassionati a Ruby, nonché sviluppatori.
Come da tradizione, per il secondo anno consecutivo Yukihiro Matsumoto (aka Matz aka colui che ha partorito Ruby) ha annunciato la disponibilità di Ruby 1.9.0.
In queste ore stanno comparendo online i primi tutorial e le prime raccomandazioni in merito alla nuova release.
Prima che vi lanciate a capofitto nell'aggiornamento della vostra installazione di Ruby è bene che siate a conoscenza di alcuni aspetti di questa release.
- Ruby 1.9.0 NON è compatibile con Rails, neanche con il recente Rails 2.0. A giudicare dal ticket #1689, la milestone è fissata per Rails 2.1 quindi niente test di performance o comparazioni, per ora...
- Rails non è la sola libreria ad avere problemi con Ruby 1.9.0. Molte gem, ovvero librerie precotte scaricabili con il gestore dei pacchetti RubyGems, non sono attualmente compatibili. Nella lista dei "io funziono ancora su 1.8.6" rientra anche il diffuso WebServer Mongrel.
- L'attuale release 1.9.0 è verosimilmente considerabile come release in fase di sviluppo e non è consigliato utilizzarla in un ambiente di produzione.
Se decidete di utilizzarla nel vostro ambiente di sviluppo potreste incontrare alcuni problemi di compatibilità . Se invece siete tra gli autori di una libreria Ruby, questo è il momento giusto per smettere di abbuffarvi di panettone e cominciare a preparare la vostra libreria per Ruby 1.9.0.
Detto questo, per gli amanti dei changelog rinnovo l'invito a visitare il post su eingenclass: Changes in Ruby 1.9.
Difficile che troverete una documentazione altrettanto leggibile e completa.
Per chi invece è ancora reduce dalle abbuffate natalizie e preferisce qualcosa di più soft, ecco a voi una breve presentazione che riepiloga le modifiche principali.
Tra le novità più attese, in breve:
- L'introduzione della virtual machine YARV che, come dimostrato, si traduce in un incremento delle prestazioni
- Il supporto alla codifica delle stringhe, conversione compresa
- Integrazione in core di alcune librerie aggiuntive, tra le quali Rake e RubyGems
Concludo suggerendovi un paio di letture finali: Akita On Rails e PragDave.
Happy coding.