Ruby, un langage de scripting de services Web
Ruby avait un public local avant que n'apparaisse en 2004 l'environnement Ruby on rails, qui a partagé son succès avec le langage lui-même. C'est un framework de construction d'application Web basée sur ce langage.
Celui-ci a été créé par Yukihiro "Matz" Matsumoto
de 1993 à 1995.
Le but était de programmer de façon
intuitive pour l'homme plutôt que le forcer à adapter
sa pensée aux structures de l'ordinateur. Cela se concrétise
par l'application du principe de moindre surprise qui signifie que la
syntaxe du langage est toujours ce à quoi s'attend naturellement
le programmeur. Mais il y a aussi une quantité de conventions
établies pour simplifier la programmation et seulement un seul moyen
pour faire chaque chose (à l'inverse de Perl).
Ruby est interprété (utilise du bytecode), totalement orienté-objet
et dynamiquement typé.
Comme pour Python ou PHP, cela oblige à installer l'interpréteur par l'utilisateur si l'on veut distribuer un programme, mais en fait, c'est tout un environnement qu'il faut installer, sans être sûr que tout fonctionne. La différence avec Java est la taille de l'API standard de ce dernier alors que Ruby dépend surtout de bibliothèques tierces.
C'est pourquoi Ruby est surtout utilisé pour des projets d'entreprise, et sur des serveurs. Il est aussi destiné à des services de taille moyenne, et généralement pour passer à une taille supérieure, on tend à migrer vers une plateforme comme Java, Go, Node.js et depuis 2015, vers Elixir.
La syntaxe de Ruby a inspiré celle d'Elixir, fonctionnant sur machine virtuelle Beam, et Crystal, compilé en bitcode LLVM.
Un langage simplifié par un ensemble de conventions
Grâce à un ensemble de règles, comme par exemple le rôle de la capitalisation pour distinguer les constantes, que le langage a été rendu plus simple et intuitif.
Ses sources d'inspiration sont Perl, Smalltalk et Python.
- Grâce à l'objet "main" object, les variables et fonctions deviennent des attributs et méthodes.
- Héritage simple.
- Surcharge des opérateurs.
- Closures et continuations.
- Multi-tache, exceptions.
- Réflexion.
- UTF-8.
Variables et constantes :
- Les identifieurs capitalisés ou en majuscules désignent des constantes.
- Les nombres réels sont reconnus par un point suivi par un nombre ou zéro.
- Les variables globales commencent par $. Notez qu'ici le langage Go utilise lui les majuscules.
- Les attributs dans les classes commencent par @.
- Les variables locales sont de simple identifieurs.
Symboles:
# commence un commentaire.
[ exp, ... ] enclos un tableau.
{ 1 => a, ... } pour un dictionnaire.
Structures de contrôle:
La structure if comporte les options elsif et else.
if x < 10 then
print "x moins que 10\n"
else
print "etc...\n"
end
La structure while:
while expr [do]
...
end
Fonction ou méthode:
La définition commence par le mot-clé def, puis
le nom et la liste des arguments séparés par des virgules,
puis les instructions et elle se termine par le mot-clé end.
Le mot-clé return dans le corps de la définition
permet de retourner une ou plusieurs valeurs.
def funcname( arguments )
...instructions...
return x, y, z
end
Classe:
class nom
...
end
Exemples de code, Hello world:
do puts "Hello, World!" end
Scanner le contenu d'un tableau:
mylist = [ "d", "e", "m", "o" ]
for i in mylist do
print i, "\n"
end
Ruby On Rails
Faut-il choisir Ruby On Rails pour créer son application en ligne?
Comme le langage lui-même, ce framework coté serveur a été conçu pour être simple et intuitif. La principale raison que l'on invoque pour justifier son choix est qu'avec ROR on peut réaliser une application fonctionnelle en quelques heures (quand on est déjà familiarisé avec).
Il dispose d'une quantité de plugins qui augmentent ses possibilités, les "Gems", d'un outil de test intégré et autres outils.
Cependant sa mise en oeuvre n'est pas si simple pour le débutant, au contraire de PHP, il faut connaître l'ensemble du système pour commencer à l'utiliser et son langage de templates est plutôt cabalistique.
ROR doit aussi son succès à ses nombreux outils. Mais du temps à passé et PHP notamment à largement évolué. La version 7 est deux fois plus rapide, plus sûre. Il s'est doté d'un gestionnaire de package, Composer, équivalent à RubyGems. Il en est de même pour les autres plateformes: elles se sont dotées d'outils équivalents à ceux de ROR ce qui annule l'essentiel de ses avantages passés.
Les inconditionnels de la plateforme diront qu'elle permet de réaliser des sites à grande audience, pourtant il y a une tendance à migrer vers Elixir, un langage dérivé de Ruby, mais fonctionnant sur la plateforme Erlang et sa machine virtuelle Beam, conçue pour la tolérance au pannes sur de grands sites.
En conclusion, ROR est une plateforme sûre et stable disposant d'une bonne documentation, mais elle n'est dorénavant pas plus innovante que les alternatives et même en retard. Par ailleurs Ruby est peu utilisé hors de Rails, on doit donc apprendre un langage uniquement pour créer un site.
Voir aussi
Node, Go, Elixir, PHP, quelle plateforme d'application Web choisir.
Outils et documentation
Références: Le manuel de référence de Ruby.