Developpez.com

Le Club des Développeurs et IT Pro

Quoi de neuf sur Ruby 1.9.3 ?

Changement de licence, tests parallèles et démarrage plus rapide des applications Rails

Le 2011-08-03 23:53:00, par Idelways, Expert éminent sénior
Mise à jour du 1 novembre 2011

Ruby 1.9.3 patch-zéro vient de sortir, signant un nouveau pas dans l'évolution tranquille du langage.

Plus d'un an après la 1.9.2 venue stabiliser la branche 1.9, la nouvelle itération (d'apparence relativement mineure) optimise les performances et se rapproche davantage des spécifications du langage.

Les principales nouveautés sont détaillées ci-devant, mais en voici un récapitulatif : chargement et manipulation plus rapide des fichiers, io/console, exécution parallèle des test::unit et changement de licence GPL par la BSD.

Notons aussi le support des expressions régulières en Unicode 6.0, un nouveau moteur YAML et une mise à jour collective des sous composants de la bibliothèque standard (Rubygems, JSON, Minitest, Rake, ...).

Cela étant fait, les contributeurs au projet ont fixé une feuille de route de la version 2.0 qui devrait aboutir à son lancement final en février 2013. Tout juste 20 ans après que l'idée du langage avait germé sur une discussion IRC entre Matsumoto et Keiju Ishitsuka.

Faut-il s'attendre à une révolution majeure qui changera considérablement la face du langage ? Non, affirme Matz, « le numéro de version passera à 2.0, mais les changements sont plutôt petits. Plus petits que ceux que nous avons accomplis sur la 1.9 ».

À l'image du petit saut technologique qui a accompagné le passage du noyau Linux au tag 3.0, Ruby 2.0 restera entièrement compatible avec Ruby 1.9.2, mais pourrait introduire quelques nouveautés syntaxiques.

Parmi les nouveautés qui pourront y faire leur apparition : arguments de méthodes en mots-clés, import/export de bytecode (permettant d'enregistrer et réutiliser des scripts précompilés), Refinements (pour rendre le monkey-patching plus sûr en limitant sa portée au contexte du module), sortir les librairies de la bibliothèque standard en tant que Gems, et bien d'autres...

À noter qu'une version 1.9.4 est prévue avant ce saut symbolique de version.

Changelog
Cette version est disponible en téléchargement sur cette page

Source : l'annonce sur le mailing-list, Ruby Inside

Et vous ?

Avez-vous essayé Ruby 1.9.3 ?
Que pensez-vous de l'évolution du langage ?
Quelles fonctionnalités souhaitez-vous voir apparaître sur Ruby 2.0 ?

Quoi de neuf sur Ruby 1.9.3 ?
Changement de licence, tests parallèles et démarrage plus rapide des applications Rails

Yuki Sonoda de la core team du langage Ruby vient d'annoncer la disponibilité de la première preview de Ruby 1.9.3, une version majeure marquée par un changement de licence et de nombreuses nouveautés et améliorations.

Contrairement aux versions préalables distribuées sous double licence GPLv2/Ruby Licence, cette mouture tronquera la GPL par la BSDL, essentiellement pour rendre sa distribution compatible avec les licences GPLv3 et BSD.

Cette première preview intègre un « patch miracle » qui permet d'améliorer le temps de démarrage des applications Ruby on Rails jusqu'à un facteur*3.

Initié par le développeur australien Xavier Shay, puis repris et perfectionné par le front japonais des mainteneurs de ruby, ce patch améliore drastiquement le mécanisme de chargement des fichiers Ruby en optimisant le test qui permet de s'assurer qu'un fichier n'a pas été préalablement chargé ailleurs dans le code.

Le framework Ruby on Rails, très modulaire, lance des centaines de « require » au démarrage et sera par conséquent le premier à bénéficier de cette amélioration.

L'API OpenSSL de la bibliothèque standard, reprise en main par une nouvelle équipe de contributeurs, a été améliorée, au même titre que les modules pathname et date, réimplémentées en langage C par souci évident de performances.

IO/Console, une toute nouvelle cooccupante de la bibliothèque standard, donne de nouvelles capacités à Ruby en entrée/sortie en mode console.

Test::unit, le framework de testé par défaut du langage Ruby supporte désormais l'exécution parallèle des testes. De meilleures performances et un développement piloté par les tests plus agréables en perspective.

Pour installer cette version de Ruby via RVM :

Code :
1
2
3
4
5
rvm get head
rvm reload
rvm install 1.9.3-preview1
rvm use 1.9.3

Ruby 1.9.3-preview1 peut être téléchargé sur via ce lien

Source : mailing-list du langage

Et vous ?

Avez-vous testé cette version ?
Que pensez-vous de ses nouveautés ?
  Discussion forum
5 commentaires
  • Idelways
    Expert éminent sénior
    Ruby 1.9.3 finale sort et lâche la licence GPLv2
    La version 2.0 s'annonce pour 2013 et maintiendra la rétrocompatibilité

    Mise à jour du 1 novembre 2011

    Ruby 1.9.3 patch-zéro vient de sortir, signant un nouveau pas dans l'évolution tranquille du langage.

    Plus d'un an après la 1.9.2 venue stabiliser la branche 1.9, la nouvelle itération (d'apparence relativement mineure) optimise les performances et se rapproche davantage des spécifications du langage.

    Les principales nouveautés sont détaillées ci-devant, mais en voici un récapitulatif : chargement et manipulation plus rapide des fichiers, io/console, exécution parallèle des test::unit et changement de licence GPL par la BSD.

    Notons aussi le support des expressions régulières en Unicode 6.0, un nouveau moteur YAML et une mise à jour collective des sous composants de la bibliothèque standard (Rubygems, JSON, Minitest, Rake, ...).

    Cela étant fait, les contributeurs au projet ont fixé une feuille de route de la version 2.0 qui devrait aboutir à son lancement final en février 2013. Tout juste 20 ans après que l'idée du langage a germé sur une discussion IRC entre Matsumoto et Keiju Ishitsuka.

    Faut-il s'attendre à une révolution majeure qui changera considérablement la face du langage ? Non, affirme Matz, « le numéro de version passera à 2.0, mais les changements sont plutôt petits. Plus petits que ceux que nous avons accomplis sur la 1.9 ».

    À l'image du petit saut technologique qui a accompagné le passage du noyau Linux au tag 3.0, Ruby 2.0 restera entièrement compatible avec Ruby 1.9.2, mais pourrait introduire quelques nouveautés syntaxiques.

    Parmi les nouveautés qui pourront y faire leur apparition : arguments de méthodes en mots-clés, import/export de bytecode (permettant d'enregistrer et réutiliser des scripts précompilés), Refinements (pour rendre le monkey-patching plus sûr en limitant sa portée au contexte du module), sortir les librairies de la bibliothèque de standard en tant que Gems, et bien d'autres...

    À noter qu'une version 1.9.4 est prévue avant ce saut symbolique de version.

    Changelog
    Cette version est disponible en téléchargement sur cette page

    Source : l'annonce sur le mailing-list, Ruby Inside

    Et vous ?

    Avez-vous essayé Ruby 1.9.3 ?
    Que pensez-vous de l'évolution du langage ?
    Quelles fonctionnalités souhaitez-vous voir apparaître sur Ruby 2.0 ?
  • Traroth2
    Membre émérite
    L'abandon de la licence GPL au profit de la licence BSD, c'est vraiment dommage. Comment cette décision a-t-elle été prise ?
  • Floréal
    Membre éclairé
    J'aurai tendance à suggérer plutôt ces options pour l'installer via rvm:
    Code :
    1
    2
    3
    rvm install 1.9.3-preview1 --with-iconv-dir=$rvm_path/usr 
    --with-readline-dir=$rvm_path/usr --with-zlib-dir=$rvm_path/usr 
    --with-openssl-dir=$rvm_path/usr
    à condition bien sûr d'avoir installé ces packages dans votre installation de rvm.
  • Nollo
    Membre régulier
    Envoyé par Traroth2
    L'abandon de la licence GPL au profit de la licence BSD, c'est vraiment dommage. Comment cette décision a-t-elle été prise ?
    Et en quoi est ce dommage ?
  • ernestrenan
    Membre régulier
    J'ai pas l'impression que ça ameliore la vitesse de mon application en revanche y a des commandes qui me sont plus permises de faire par exemple utiliser directement une commande rake sans passer par bundle exec provoque une erreur ce qui n'arrivait pas avec 1.8.7 .