Ruby

Infos
Ruby est un langage de programmation interprété orienté objet.
Ruby

Ruby est un langage de programmation interprété orienté objet.

Historique

Yukihiro "Matz" Matsumoto a commencé l'écriture de ce langage en 1993 et a publié une première version en 1995. Le nom Ruby n'est pas un acronyme mais un jeu de mots sur Perl, article de Yukihiro Matsumoto publié sur le 12 juin 2000. Les changements de version majeurs ont eu lieu :
- le 25 décembre 1998 pour la version 1.2.0,
- le 13 août 1999 pour la version 1.4.0,
- le 19 septembre 2000 pour la version 1.6.0
- et le 4 août 2003 pour la version 1.8.0. La dernière version stable est la 1.8.6, publiée le 12 mars 2007. Les nouvelles versions stables sont souvent publiées à NoëlVoir les dates de publication des versions et .

Philosophie

Ruby est fortement orienté objet et se rapproche ainsi du paradigme objet de SmalltalkLa principale différence étant que les structures de contrôle (if-then-else, while, etc.) ne sont pas des objets. :
- toute donnée est un objet, y compris les types ;
- toute fonction est une méthode ;
- toute variable est une référence à un objet. Malgré cet aspect exclusivement objet, la programmation procédurale est possible et fréquente. Ruby utilise une syntaxe simple, inspirée par Eiffel et Ada, the History of Programming Languages. Le langage est souvent présenté comme évitant au maximum les mauvaises surprises, selon le principe de moindre surprise. Mais puisqu'il n'est pas possible d'éviter la surprise de tous les utilisateurs, Yukihiro Matsumoto précise qu'il cherche surtout à éviter sa propre surprise. Ainsi plus on connait le langage, plus on connait la logique de son auteur et moins on s'étonne des fonctionnalités qu'on découvre.

Fonctionnalités

Les fonctionnalités principales sont :
- l'orientation objet omniprésente ;
- le ramasse-miettes chargé de libérer automatiquement la mémoire ;
- le système de gestion d'exceptions pour gérer les erreurs exceptionnelles ;
- la possibilité de modifier les classes pendant l'exécution du programme, qu'elles soient définies par l'utilisateur ou non ;
- l'intégration dans sa syntaxe des expressions rationnelles ;
- les blocs qui servent d'itérateur et permettent de passer des morceaux de programme en paramètre ;
- l'héritage simple ;
- l'inclusion de modules dans les classes, une autre manière de concevoir l'héritage multiple (mixin) ;
- l'écriture d'extensions en C relativement simple ;
- les nombres entiers de taille illimitée avec conversion automatique lorsque c'est nécessaire, article publié sur ;
- la portée des variables définie par leur forme : est une variable locale, est une variable d'instance, est une variable de classe, est une variable globale, est une constante, etc. ;
- les threads indépendants du système d'exploitation ;
- la réflexion, c'est-à-dire la possibilité pour les programmes et les objets de s'inspecter eux-mêmes et de se modifier.

Implémentations

L'interpréteur officiel fonctionne sur de nombreux systèmes d'exploitation : Unix, Linux, Microsoft Windows, DOS, Mac OS X, OS/2, Amiga, etc. Il est publié sous la double licence libre GNU GPL et la licence Ruby. Ruby est fourni avec irb, un interpréteur de commandes interactif pour tester en profondeur le fonctionnement du langage. Il existe une version web d'irb pour tester Ruby dans un navigateur. Depuis le 2007, la version de développement de Ruby (1.9) est basée sur l'interpréteur YARV écrit par Koichi Sasada, interview de matz et de ko1 sur la machine virtuelle de Ruby. Ce nouvel interpréteur apporte un gain notable en performances, comparaison des performances des principaux interpréteurs Ruby. Il existe plusieurs autres interpréteurs Ruby : ; JRuby : Il est écrit en Java et interprète directement du code source écrit en Ruby. ; XRuby : Il convertit du code Ruby en code Java et est plus rapide sur certains tests de performance que la version 1.8.5 de l'interpreteur officiel . ; Rubinius : Une machine virtuelle simplifiée, inspirée de Smalltalk-80 . ; Cardinal : Un interpréteur fonctionnant sous Parrot. ; Gardens Point Ruby.NET : Un interpréteur fonctionnant sur le framework .NET par Huw Collingbourne.

Interprètes embarqué

Ruby possède une interface de programmation en langage C qui lui permet d'être intégré au sein d'autres logiciels. Ruby est notamment utilisable dans :
- Apache avec mod_ruby pour générer des pages Web en Ruby
- et PostgreSQL avec PL/ruby pour faire exécuter des commandes Ruby au serveur de base de données. Le logiciel de création de jeu vidéo RPG Maker XP intègre un langage de programmation issu de Ruby et nommé RGSS, Ruby Game Scripting System.

Bibliothèques

Il existe de nombreuses bibliothèques de fonctionnalités adjoignables au langage. Le dépôt historique de ces bibliothèques est le Ruby Application Archive (RAA). Il contient des fonctionnalités supplémentaires pour Ruby comme des bibliothèques de classes et de modules, mais aussi des extensions permettant d'utiliser des bibliothèques tierces. Le RAA contient également des logiciels écrits en Ruby. Parmi ces logiciels on trouve notamment Rubygems qui est un outil d'empaquetage et d'installation pour les extensions Ruby. Il permet de déployer rapidement des bibliothèques et des programmes Ruby. Le site Web Rubyforge est également un hébergeur important de programmes et de bibliothèques écrites en Ruby.

Voir aussi

===
Sujets connexes
Ada (langage)   Amiga   Apache HTTP Server   Base de données   CLU (langage)   C (langage)   Classe (informatique)   Constante   Courrier électronique   DOS   Dave Thomas   Dave Thomas (programmeur)   Donnée   Eiffel (langage)   Expression rationnelle   Extension (logiciel)   Fonction (informatique)   Framework .NET   Groovy (langage)   Héritage multiple   Interactive Ruby   Interactivité   Interface de programmation   Interprète (informatique)   Interpréteur de commandes   Jeu de mots   Langage de programmation   Licence publique générale GNU   Linux   Lisp   Liste de diffusion   Logiciel   Mac OS X   Microsoft Windows   Mixin   Module (programmation)   Multiplate-forme   Mémoire informatique   Méthode (informatique)   Noël   OS/2   Page Web   Parrot (machine virtuelle)   Perl (langage)   Perl 6   Peter Cooper   PostgreSQL   Principe de moindre surprise   Programmation concurrente   Programmation fonctionnelle   Programmation impérative   Programmation orientée objet   Programmation procédurale   Programme informatique   Python (langage)   Ramasse-miettes   Ruby on Rails   Réflexion (informatique)   Site Web   Smalltalk   Syntaxe   Système d'exploitation   Système de gestion d'exceptions   Test de performance   Typage dynamique   Typage fort   Type (informatique)   Variable   Variable d'instance   Variable globale   Variable locale   YARV   Yukihiro Matsumoto  
#
Accident de Beaune   Amélie Mauresmo   Anisocytose   C3H6O   CA Paris   Carole Richert   Catherinettes   Chaleur massique   Championnat de Tunisie de football D2   Classement mondial des entreprises leader par secteur   Col du Bonhomme (Vosges)   De viris illustribus (Lhomond)   Dolcett   EGP  
^