Ruby
Un article de Wikipédia, l'encyclopédie libre.
- Pour les articles homonymes, voir Ruby (homonymie).
Apparu en | 1995 |
Auteur | Yukihiro Matsumoto |
Développeurs | Yukihiro Matsumoto et des contributeurs |
Dernière version | 1.8.6 (25 août 2006) |
Paradigmes | Objet, impératif, concurrent, fonctionnel |
Typage | Fort, dynamique |
Influencé par | Perl, Smalltalk, Python, Lisp, Dylan et CLU |
A influencé | Groovy, Perl 6 |
Implémentations | Ruby, JRuby[1] |
Système d'exploitation | Multi-plate-forme |
Licences | Licence Ruby et GPL |
Site Web | ruby-lang.org |
Ruby est un langage de programmation interprété orienté objet.
Sommaire |
[modifier] Historique et dénomination
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[2].
Les changements de version majeurs ont eu lieu[3] :
- le 25 décembre 1998 (1.2.0),
- le 13 août 1999 (1.4.0),
- le 19 septembre 2000 (1.6.0)
- et le 4 août 2003 (1.8.0).
La dernière version stable est la 1.8.6, publiée le 12 mars 2007[4]. Les nouvelles versions stables sont souvent publiées à Noël[5].
[modifier] Philosophie
Ruby est entièrement orienté objet, à la manière de Smalltalk[6] :
- 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[7]. Elle est toutefois assez différente des langages traditionnels comme le C, donc la transition vers des langages qui s'inspirent de cette syntaxe (comme Python) sera plus ardue[8].
Le langage est conçu pour éviter autant que possible les mauvaises surprises, selon le principe de moindre surprise[9].
[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[10]. Il existe aussi un interpréteur écrit en Java : JRuby[1]. Enfin, Ruby est fourni avec irb, un interpréteur de commandes interactif pour tester en profondeur le fonctionnement du langage[11].
[modifier] 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[12] ;
- la portée des variables définie par leur forme :
var
est une variable locale,@var
est une variable d'instance,@@var
est une variable de classe,$var
est une variable globale,Var
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.
[modifier] Interpréteur embarqué
Ruby possède une API en langage C simple et efficace qui lui permet d'être intégré au sein d'autres logiciels. Ruby est actuellement intégrable 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.
[modifier] 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)[13]. 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[14]. Il permet de déployer rapidement des bibliothèques et des programmes Ruby.
[modifier] Voir aussi
[modifier] Articles connexes
[modifier] Bibliographie
- (en) Dave Thomas, Andrew Hunt, Programming Ruby, 2000 (ISBN 0-201-71089-7) [lire en ligne]
- (fr) Yukihiro Matsumoto, Ruby in a Nutshell, 2002 (ISBN 2-84177-210-1)
- (fr) Chris Pine, Débuter en Programmation avec Ruby, 2006 (ISBN 2-74440-2078-8)
- (fr) Lucas Carlson, Leonard Richardson, Ruby par l'exemple, 2006 (ISBN 978-2-84177-347-3)
[modifier] Liens externes
- (en) Site officiel
- (en) Ruby-doc.org, documentation complète
- (en) Ruby Application Archive, dépôt officiel de projets Ruby
- (en) Wiki de RubyGarden
- (en) Try Ruby!, pour tester Ruby dans son navigateur
- (en) Mondrian Ruby IDE, un IDE pour développer en Ruby
- (fr) Site officiel en français
- (fr) Association RubyFrance
- (fr) Apprenez Ruby, une introduction au langage
- (fr) Apprendre à programmer, un tutorial qui prend pour base Ruby
- (fr) Rubyforge, equivalent de Sourceforge pour les projets Ruby.
- Une liste de diffusion en français existe. Pour la rejoindre il faut envoyer un courrier électronique à ruby-fr-ctl@ruby-lang.org. Elle est archivée sur Mailing list ARChives et Nabble
[modifier] Notes et références
- ↑ 1,0 1,1 Site officiel de JRuby
- ↑ The Ruby Programming Language, article de Yukihiro Matsumoto publié sur informit.com le 12 juin 2000
- ↑ Site FTP officiel de téléchargement
- ↑ Site FTP officiel pour télécharger les dernières versions stables
- ↑ Voir les dates de publication des versions 1.6 et 1.8
- ↑ Mais contrairement à SmallTalk, les structures de contrôle (if-then-else, while, etc.) ne sont pas des objets.
- ↑ Ruby sur HOPL, the History of Programming Languages
- ↑ Introduction à Ruby sur JDN développeurs
- ↑ Définition du PoLS sur le wiki de Ruby Garden
- ↑ Texte de la licence sur le site officiel
- ↑ Il existe une version web d'irb pour tester Ruby dans un navigateur : Try Ruby! sur hobix.com
- ↑ Ruby—A Diamond of a Programming Language, Part 2, article publié sur devx.com
- ↑ Ruby Application Archive
- ↑ Site officiel de Rubygems
|
|