remonter

Des nouvelles de Ruby

éditer page historique
Image utilisateur
Le langage Ruby est apparu en 1995, conçu par l'informaticien japonais Yukihiro Matsumoto et quelques contributeurs qui ne trouvaient pas de quoi se satisfaire dans les langages déjà existants. Ce langage tient son nom d'un petit jeu de mot, provenant de la pierre précieuse rubis, par analogie avec le langage Perl.
Ruby se veut le successeur de Perl et une alternative à Python, pour être plus clair que le premier et plus orienté-objet que le second (bien qu'influencé également par Smalltalk, Lisp, Dylan et CLU).
La syntaxe s'inspirant de Perl et Python, se veut intuitive et naturelle, les instructions sont ainsi terminées par les fin de lignes, tel qu'en Python. On retrouve également la plupart des caractéristiques de celui-ci : tableaux associatifs, itérateurs, etc. Les blocs d'instructions et les boucles sont néanmoins terminées par end.

La toute première apparition (non publique) du langage datant de 1993, pas moins de six versions sont apparues, de la version 1.1.0, publiée en 1995 à la 1.9.1, rendu publique le 30 janvier 2009 et inaugurant la branche 1.9.

De nombreuses implémentations



Ruby, langage interprété



Ruby étant un langage interprété, un interpréteur est donc nécessaire pour analyser, traduire et exécuter le code fourni. De manière général, un interpréteur est donc capable de lire le code source d'un langage sous forme de script (Ruby, dans notre cas), c'est-à-dire sous forme de fichier texte (le plus souvent), et d'en exécuter les instructions après une analyse syntaxique du contenu.
Depuis le 1er janvier 2007, le développement de Ruby, sous la branche 1.9, est basée sur l'interpréteur YARV. Celui-ci apporte notamment un gain en performances.

De nombreux autres interpréteurs



Il existe de nombreux autres interpréteurs Ruby (et donc, de nombreuses implémentations), chacun ayant leur propre avantage et inconvénient. Une implémentation peut se définir comme un interpréteur ou compilateur qui respecte le même langage, assure un même comportement (même syntaxe, bibliothèques standards etc.) mais des performances différentes et une utilisation possible selon un environnement bien défini. Voici une liste, non exhaustive, de plusieurs interpréteurs Ruby :

Sortie de Rubinius 1.0



Comme entrevu précédemment, Rubinius est une implémentation Ruby, dont le code est disponible sous licence BSD. Rubinius permet d'exécuter du code Ruby mais se donne également d'autres objectifs, développés plus loin. Rubinius, dont le développement commença en Novembre 2006, voit sa version 1.0 enfin disponible. Celle-ci marque notamment la possibilité d'utiliser l'interpréteur Rubinius pour Ruby 1.8.7, mais également pour le framework web Ruby on Rails (aussi bien la version 2.3 et que la version 3), Rspec, Rubygems, les bibliothèques Ruby et même une grande partie des extensions codées en C.

Techniquement, Rubinius est écrit majoritairement en Ruby, et en C++ pour des parties spécifiques ne pouvant pas être (encore) codées en Ruby. Il fonctionne avec une machine virtuelle dont le bytecode est ensuite transcris en code machine, à l'exécution grâce à LLVM, un langage de bas niveau indépendant du processeur utilisé. LLVM se charge de transformer du code Ruby en code machine optimisé. En plus de permettre de compiler des programmes statiquement, LLVM est conçu pour permettre la compilation à la volée, ce qui permet par exemple d'optimiser les programmes pendant leur exécution.

La version 1.0 vise de nombreux objectifs :