Ruby est un langage orienté-objet qui combine des éléments de Smalltalk,
de Scheme et de Perl en une syntaxe simple mais puissante.
1 Qu'est-ce que Ruby
Comme on peut s'y attendre, les présentations suivantes ne
se contredisent pas, celle de la FAQ est plus concise.
1.1 Selon Yukihiro 'Matz' Matsumoto.
Traduit à partir de
"What's Ruby" sur http://www.ruby-lang.org/
Ruby est un langage de script interprété pour une programmation
orientée objet rapide et aisée. Il a beaucoup de possibilités de traiter
des fichiers textes et de faire de l'administration de système
(comme Perl). Il est simple, direct, extensible et portable.
Oh, je dois le mentionner, il est complètement libre, ce qui ne signifie
pas seulement qu'il est gratuit, mais qu'on est libre de l'utiliser,
de le copier, de le modifier et de le distribuer.
Caractéristiques de Ruby.
-
Ruby a une syntaxe simple, partiellement inspirée par Eiffel et Ada.
-
Ruby a des possibilités de gérer les exceptions, comme Java ou Python,
pour faciliter le gestion des erreurs.
-
Les opérateurs Ruby sont du miel syntaxique pour les méhodes. Vous pouvez
les redéfinir facilement.
-
Ruby est un langage orienté objet (OOL)
totalement, complètement et parfaitement. Cela veut dire que toute donnée
dans Ruby est un objet, dans l'acception de Smalltalk: sans exception.
Exemple : 1, dans Ruby est une instance de la classe Fixnum.
-
Ruby a été soigneusement conçu pour être à la fois complet et ouvert
aux améliorations. Exemple : Ruby a la possibilité d'ajouter
des méthodes à une classe et même à une instance de cette classe
pendant l'exécution. De cette façon, au besoin, une instance
d'une classe
peut se comporter différemment des autres instances
de cette classe.
-
Ruby implémente seulement l'héritage unique,
de manière délibérée.
Mais Ruby connaît le concept de modules (appelées Catégories
en Objective-C). Les modules sont des ensembles de méthodes.
Toute classe peut importer un module et ainsi avoir ses méthodes gratis.
Certains d'entre nous pensent que c'est plus clair que l'héritage
multiple qui est complexe, et pas très souvent utilisé en
comparaison de l'héritage unique (Ne pas compter C++ ici, car il n'a
souvent d'autre choix en raison de son typage fort!).
-
Ruby implémente de véritables fermetures (closures).
Ruby implémente
les fermetures, pas seulement les fonctions non-nommées, mais avec le lien
avec les variables dans leur valeur actuelle.
-
Ruby implémente les fermetures dans sa syntaxe (du code entouré de
'{' ... '}' ou 'do' ... 'end'. Ces blocks peuvent être passés à des
methodes ou convertis en fermetures.
-
Ruby implémente un vrai 'mark-and-sweep garbage collector'.
Vous n'avez pas besoin de vous occcuper de 'reference counts' en écrivant
des librairies. C'est mieux pour votre santé.
-
Ecrire des extensions C en Ruby est plus facile qu'en Perl ou python,
en partie en raison du garbage collector, et en partie en raison
d'une bonne API pour écrire des extensions.
Une interface SWIG est aussi disponible.
-
Les entiers en Ruby peuvent (et doivent) être utilisés sans prendre
en compte leur représentation interne. Il y a de petits entiers
(des instances de la classe Fixnum) et de gros entiers (Bignum),
mais vous n'avez pas à vous préoccuper de celui est présentement utilisé.
Si une valeur est assez petite, un entier est un Fixnum,
sinon c'est un Bignum, la conversion se fait automatiquement.
-
Ruby n'a pas besoin de déclaration de variables. Il utilise
une convention simple de nommage pour indiquer la portée des variables.
Par exemple : 'var' = variable locale: '@var' = variable d'instance,
'$var' = global variable, ainsi il n'y a pas à se fatiguer
à placer 'self.' devant chaque variable d'instance.
-
Ruby peut charger dynamiquement des bibliothèques d'extension
lorsque l'OS le permet.
-
Ruby implémente un threading indépendant de l'OS. Ainsi, sur toute
plateforme sur laquelle Ruby marche, vous avez aussi le multithreading,
peu importe si l'OS l'implémente ou non, même sur MS-DOS! :-)
-
Ruby est hautement portable, il est principalement développé sur
Linux, mais marche sur beaucoup de types d'UNIX, DOS,
Windows 95/98/Me/NT/2000/XP, MacOS, BeOS, OS/2, etc.
Le Createur de Ruby
Yukihiro Matsumoto, a.k.a Matz matz@netlab.jp
1.2 Selon la Faq de Ruby.
Traduit à partir de
"What is Ruby" sur http://www.rubygarden.org/
Ruby est un langage orienté-objet simple et puissant, créé par
Yukihiro Matsumoto (connu par "matz" dans ce document et les
listes de diffusion).
Comme Perl, Ruby est bon pour du traitement de texte. Comme
Smalltalk, tout en Ruby est un objet, et Ruby a des blocks,
des itérateurs, des meta-classes et d'autres bonnes choses.
Vous pouvez utiliser Ruby pour écrire des serveurs, pour expérimenter
des prototypes, et pour la programmation de tous les jours.
Comme langage orienté-objet complètement intégré, Ruby se place
bien.
Caractéristiques de Ruby.
-
Syntaxe simple,
-
Les caractéristiques OO de base (classes, methodes, objets etc.)
-
Des caractéristiques OO spéciales (Mix-ins, methodes singleton,
renommage, ...),
-
Surcharge d'opérateur,
-
Gestion des exceptions,
-
Itérateurs et closures.
-
Garbage collection,
-
Chargement dynamique (suivant l'architecture),
-
Grande portabilité (tourne sur des Unices variés, Windows, DOS, OSX,
OS/2, Amiga, et ainsi de suite)
2 Ressources francophones.
Un wiki sur Ruby.
Un guide de l'utilisateur.
Des transparents de présentation.
Apprenez Ruby.
Un site sur Ruby-Gnome2.
FAQ de Ruby.
Un forum web.
keywords : Ruby