Actualités
|
![]() |
Emploi
|
![]() |
Start-up
|
![]() |
Evénements 01 | ![]() |
Avis d'expert | ![]() |
Vidéos | ![]() |
Indicateurs
|
![]() |
Distribution
|
![]() |
Telecharger Pro
|
![]() |
Livres blancs | ||||||||||||||||||||||||












La communauté Ruby vient de se doter d'un groupe de travail pour concevoir une spécification de référence du langage Ruby et ses principales bibliothèques. Open source, elle a pour but de guider les développeurs dans l'implémentation de machines virtuelles Ruby existantes et à venir.
Popularisé par le framework web Ruby on Rails (RoR ou Rails), le langage de développement Ruby possède aujourd'hui de nombreux moteurs d'exécution. Il y a, bien entendu, la machine virtuelle Yarv, codéveloppée par le créateur du langage, Yukihiro “ Matz ” Matsumoto, et Koichi Sasada. Sun et Microsoft prennent aussi en charge Ruby nativement au sein de leurs machines virtuelles avec respectivement JRuby pour Java et RubyDLR pour .Net.
Engine Yard, une start up californienne dont les développeurs sont à l'origine de la spécification Rubyspec, proposera bientôt sa propre machine virtuelle, Rubinius, optimisée pour les langages dynamiques. “ L'existence de quatre moteurs Ruby différents ne doit pas être interprétée comme une fragmentation de la communauté ”, assure Laurent Julliard, cofondateur de Nuxos, spécialiste français de Rails. Selon lui, il est important de pouvoir choisir la meilleure implémentation de Ruby pour un usage donné, tout en étant assuré de sa conformité. “ Nous assistons plutôt à une ébullition. Chacun veut le meilleur dans sa machine virtuelle ”, estime-t-il.
Tous les développeurs se souviennent des débuts de Java. Les premières implémentations de la JVM (Java Virtual Machine) ne supportaient pas toutes un même code Java et les temps d'exécution pour un traitement similaire pouvaient être très variables d'une JVM à l'autre. D'où une déception par rapport à la promesse initiale de la portabilité. Depuis, tout est rentré dans l'ordre avec la création de JCP (Java Community Process).
Avec Rubyspec, la communauté Ruby veut éviter de reproduire le faux pas initial de Java, tout en industrialisant son langage et ses mises en œuvre.
Engine Yard propose donc de créer une implémentation de référence pour garantir la portabilité du code d'une machine virtuelle Ruby à une autre.
Si ce projet s'avère crucial pour éviter la fragmentation de la communauté, il est aussi très important pour améliorer les performances de Ruby. Car il n'existe toujours pas “ de preuve flagrante d'une capacité de ce langage à monter en charge, du moins à un coût raisonnable ”, estime Jérémy Chatard, directeur technique de Breek, une agence web spécialisée dans les technologies du web 2.0.
Le succès de Rubyspec dépendra de l'accueil que lui réserveront les communautés Ruby et Rails. Le caractère ouvert de la spécification et les besoins de performances devraient faciliter l'adoption. D'ailleurs, Rubyspec est déjà utilisé pour les tests de non-régression de la dernière branche stable de Ruby. Un bon début, donc.
Implémentation .Net native du langage Ruby. L'auteur de cette machine virtuelle travaille désormais pour Microsoft.
www.ironruby.net
Machine virtuelle 100 % Java. Permet d'utiliser des classes Java directement depuis Ruby.
http://jruby.codehaus.org
En cours de développement. Rubinius servira de base à Rubyspec.
http://rubini.us
Développé sous licence GPL par Sasada, Yarv (Yet Another Ruby VM) est la machine virtuelle la plus utilisée, notamment avec le serveur web Mongrel chez les utilisateurs de Rails. GPL.
www.atdot.net/yarv
“ Rubyspec est un projet crucial, tant pour Ruby que pour Rails ”
“ Ruby manquait en effet d'un runtime à l'épreuve des balles. Il arrive enfin avec cette implémentation de référence. Toutes les équipes des différentes machines virtuelles sont enthousiastes ; elles collaborent au projet et le revendiquent haut et fort. L'adoption générale est donc en bonne voie. ”
“ Cette spécification va exacerber la concurrence entre projets ”
“ Les entreprises disposeront ainsi de plusieurs fournisseurs potentiels pour leurs projets Ruby. Grâce à l'implémentation de référence, les éditeurs seront en mesure de spécialiser leurs machines virtuelles tout en restant standard. C'est un cercle vertueux d'amélioration de la qualité et des performances puisque toutes sont en mode open source et peuvent donc échanger les meilleures pratiques. ”
















