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.

Langage de programmation Ruby

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.

Variables et constantes :

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.