avengers Endgame

Ruby On Rails: Les 6 raisons de l’utiliser pour développement web

Partagez sur:

Je démarre une série s’articles sur les avantages de l’utilisation de Ruby on Rails pour développer une application Web. Cette article fait suite à l’article suivant qui parle en des termes très généraux des différents langages utilisés sur le web. Le but ici est d’approfondir un peu plus les avantages de Ruby et de son framework Ruby on Rails.

L’objet de ce premier article est de passer en revue quelques spécificités de Ruby. Le but n’est pas de prouver la supériorité de  Ruby par rapport à d’autres langages car il serait impossible de le faire. En effet, chaque langage a ses avantages et ses inconvénients ce qui les rend plus ou moins adaptés selon les usages. Je me contenterai donc de dire pourquoi, en tant que CTO d’une startup web, j’aime bien Ruby.

1. RUBY : UN LANGAGE ÉLÉGANT ET CONCIS

Contrairement à Php, Javascript ou Java qui ont souvent été considéré par les développeurs comme des langages peu élégants, Ruby, à l’instar de Python, a particulièrement bonne presse parmi les développeurs.

La plupart des développeurs (mais pas tous, car la beauté d’un langage est toute relative), aime bien la syntaxe de Ruby. Contrairement à un Java particulièrement verbeux, à un Php qui manque souvent de structure, ou à un Javascript où des « functions » s’enchevêtrent les unes aux autres, Ruby a l’avantage d’être clair et concis.

C’est sans doute ce dernier point qui le rend le plus attrayant. La concision permet d’augmenter la lisibilité du code, la productivité des développeurs et par la suite la maintenance de ce dernier. En Ruby, si un nouveau développeur arrive sur le projet, il ne lui faudra pas trop de temps pour prendre en main le code.

Un exemple de cette concision est par exemple l’utilisation des Proc, Block, yields et lambdas en Ruby (article en anglais et la présentation en français de Matthieu Segret ici)

La limite de cette concision est le faible typage de Ruby. Attention à bien nommer vos méthodes et variables et à être rigoureux.

2. UN LANGAGE FORTEMENT ORIENTÉ OBJET

La programmation orientée objet consiste à écrire des programmes à partir d’objets qui représentent des concepts, des idées ou toute représentation du monde réel (par exemple l’objet Employé) ayant un comportement propre et étant en relation avec d’autres objets (l’objet Employé appartient à une Entreprise). Ce paradigme permet de gagner en lisibilité et en facilité la maintenance, notamment au fur et à mesure que le programme devient complexe.

Ruby n’est pas le seul langage orienté objet : Java, Python, C#, C++, Objective C, Smalltalk, Php > 5, le sont.

Contrairement à PHP dont la programmation orientée objet n’est apparue qu’à partir de la version 5 ou Javascript qui est un langage orienté objet à prototype (différent de la programmation orientée objet par classe de Java ou de C++), la syntaxe de Ruby invite à la programmation orientée objet et sera très familière aux nombreux développeurs qui se sont d’abord formés à Java ou au C++.

Si vous voulez en savoir plus sur la programmation orientée objet, voici un tutoriel en français.

3. LA GESTION DES LIBRAIRIES AVEC BUNDLER

Dans un contexte où l’on utilise beaucoup de bibliothèques (ou librairies) tierces dans son code (aujourd’hui, il est devenu inutile de réinventer la roue à chaque fois), vous aurez à gérer de nombreuses dépendances, ce qui peut vite devenir un casse-tête.

En Ruby, il est très facile de gérer les bibliothèques tierces et les versions de ces dernières en utilisant Bundler.

Par exemple, il sera plus aisé de :

  • passer de l’environnement de développement à l’environnement de staging ou de production.
  • prendre en main le projet pour un nouveau développeur
  • mettre à jour votre site (notamment si des problèmes de sécurités ont été découverts)
Bien entendu, il existe des équivalents dans les autres langages (Maven/Gradle en Java, npm, bower en JavaScript, etc).

4. RUBY, UN LANGAGE INTERPRÉTÉ

Le langage est interprété, c’est à dire qu’il a besoin pour tourner sur une machine cible (votre ordinateur, un serveur, etc.) d’un interpréteur, souvent écrit en C ou dans un autre langage bas-niveau. L’interpréteur peut aussi être écrit en Java dans le cas de JRuby, ce qui peut être intéressant si vous voulez utiliser Ruby dans un environnement fortement orienté Java, comme dans les grandes entreprises.

Le langage interprété, par opposition à un langage compilé, est souvent plus lent à exécuter. En revanche, le principal avantage est qu’il vous est possible de tester et débogguer à la volée votre code (pas besoin, comme en Java par exemple, de compiler à chaque fois cotre code), ce qui vous fera gagner beaucoup de temps, notamment dans le développement web où il y a sans arrêt des aller-retours entre votre navigateur et votre code.

5. UNE COMMUNAUTÉ ACTIVE TRÈS PORTÉE SUR L’OPEN-SOURCE

Le communauté Ruby est aujourd’hui de plus en plus vaste et très proactive. S’il y a moins de développeur Ruby (250-300k) que Java (3 millions sur linkedin), Php (1,4 million), Python (550-600k) ces derniers sont plus actifs. Sur meetup, Paris.rb (communauté ruby à Paris) a 3 fois plus de membres que Paris.py (la communauté Python à Paris).

De plus, la communauté est très orientée sur l’open source, ce qui vous permettra de trouver d’innombrables librairies tierces (nommées Gems) sur RubyGems par exemple. En  début 2014, il y a presque deux fois plus de librairies en Ruby (67k) qu’en Python (sur PyPI ils annoncent 37k) et toujours plus que pour Node.js (sur npmjs.org, 51k mais ce chiffre a presque doublé 6 mois !)

6. CONCLUSION : RUBY ON RAILS

En somme, Ruby a plus d’un atout dans son sac pour vous convaincre. Personnellement, j’ai moins choisi Ruby pour les arguments précédents (par rapport à Python par exemple) que par la puissance du framework Ruby on Rails qui n’existe qu’en Ruby. Je trouve ce framework excellent pour un bon nombre d’applications sur le web et je vous en détaillerai les raisons dans des prochains articles.

Si vous voulez apprendre Ruby et vous familiariser avec Rails, lisez cet article.


Partagez sur: