Ruby est un langage de programmation généraliste interprété. Il demande d’adopter une approche de conception dite “orientée objet”. Bien qu’existant depuis 1995, il a été récemment popularisé par un framework pour le développement d’applications Web : Ruby On Rails (RoR).
Héritier de plusieurs langages comme Perl, Eiffel, Lisp ou Smalltalk, Ruby est totalement orienté objet. C’est-à-dire que l’activité du programmeur Ruby consiste toujours en l’envoi de messages à des objets. De ce fait, une fois ce seul mécanisme compris, l’utilisateur profite de cette unité interne au langage qui, lui évitant les surprises, facilite son activité de développement. Ce dernier point le distingue en particulier du langage interprété Python.
La syntaxe de Ruby se veut proche de celle du langage naturel et la plus homogène possible.
Le langage bénéficie d’une forte communauté qui le soutient, la documentation est de bonne qualité, et de nombreuses bibliothèques sont disponibles et installables facilement via l’utilitaire RubyGems et le site RubyForge.
Dans le cas de Ruby on Rails, mentionnons également la présence sur le Web de nombreuses vidéos (screencast) dédiées à l’apprentissage de différents aspects de ce framework.
Je m’en sers personnellement pour développer de petites applications (moins de 100 lignes de code source), le préférant à d’autres alternatives (Perl, Awk, Bash, Python, …) pour sa lisibilité qui facilite la maintenance du code et améliore sa pérennité.
Une raison plus technique me fait aussi apprécier ce langage, il a en effet repris à Smalltalk la notion élégante de bloc qui permet une programmation d’un haut niveau d’abstraction, c’est-à-dire considérer les fonctions comme des objets à part entière qui peuvent donc être passés en paramètre d’un message, retournés par un message, etc.
Ruby on Rails permet également de développer rapidement la maquette d’une application Web.
Le framework Ruby On Rails fait le choix de favoriser l’usage de conventions pour diminuer les besoins de configuration. Si ce choix me semble intéressant et même justifié lorsqu’il s’agit d’accélérer le développement d’une application Web “classique” ; il demande un temps d’adaptation pour se familiariser avec ces diverses conventions et trouve ses limites lorsque l’on cherche à développer une application moins classique (ce qui fut mon cas pour une application qui demande d’utiliser RDF plutôt qu’une base de données relationnelle).
Commentaires
Autres fiches PLUME connexes
Perl : langage de script orienté système, utilisable également pour des applications “métiers” : http://www.projet-plume.org/fiche/perl