Programmer en Ruby : les pour et contre

6 min
78
0
0
Publié le

Depuis son lancement en 1995, les développeurs utilisent Ruby aussi bien pour le frontend que pour le backend et la programmation serveur. L’arrivée de Ruby on Rails (ROR) en 2004 a encore élargi ses usages grâce à un framework permettant de développer rapidement et intuitivement des applications web.

Avec son orientation objet native, sa simplicité de syntaxe et son modèle libre, Ruby est activement soutenu par une large communauté. Pourtant, les offres et missions en Ruby sont rares et le langage de programmation reste peu utilisé par les professionnels de l’IT. Le langage peine à atteindre le top 10 des langages de programmation les plus populaires dans les classements de Tiobe et stackoverflow. Il reste loin derrière Python, Java ou même PHP. Alors pourquoi un tel paradoxe ? Découvrez, dans cet article, les avantages et inconvénients de programmer en Ruby.

Les avantages de la programmation en Ruby

Un développement plus rapide

Depuis sa création, Ruby se veut un langage simple avec une syntaxe claire, similaire à la langue anglaise et inspirée d’Eiffel et d’ADA. C’est d’ailleurs un langage idéal pour les débutants en programmation.

Par exemple, voici la syntaxe de la condition elseif en Ruby 

age = gets.chomp.to_i # on récupère l’âge en entrée
if age < 18    # Si l’âge est inférieur à 18 ans 
print 'Vous êtes mineur.'
elsif age > 70 # Si l’âge est supérieur à 70 ans
  print 'Vous êtes senior.'
else          
  print 'Vous êtes majeur et votre âge est inférieur à 70 ans.'
end

Cette simplicité est également un des fondements de Ruby on Rails, le framework Ruby qui repose sur 2 piliers :

  1. « Don’t repeat yourself  » (DRY) ou « ne vous répétez pas ». Le DRY dans un langage de programmation est un avantage pour les développeurs, car il limite la duplication ou la répétition de code.

  2. « Convention plutôt que configuration » : Ruby on Rails n’exige pas du développeur qu’il déclare explicitement les petits éléments comme les types de variables. Le framework prend en charge des conventions de nommage fortes. La première lettre précédant la variable permet de déterminer sa portée.

Par exemple : 

  • $var permet de définir une variable globale

  • @@var désigne une variable de classe      

  • var représente une variable locale  

  • VAR définit une constante 

.

Cette simplicité et absence de redondance du code rend également les phases de tests, débogages et maintenance plus rapides.

Un grand nombre d’outils et bibliothèques

Ruby et Ruby on Rails sont soutenus par une communauté active et en permanente augmentation. Ces utilisateurs participent à l’évolution et à l’optimisation du langage en mettant à disposition de nombreux outils, bibliothèques et extraits de code.

Baptisés « Gems » , la plupart de ces outils et extensions sont disponibles en simple téléchargement sur https://rubygems.org/. Les plus populaires sont :

  • Pry, un shell interactif qui permet aux développeurs d’utiliser des breakpoints (points d’arrêt) et d’inspecter le programme, de modifier ou corriger le code source sans redémarrer le processus ;

  • RSpec pour réaliser des tests unitaires ;

  • CanCanCan pour mettre en place facilement des systèmes d’autorisation sur les ressources ;

  • Kaminari pour instaurer des systèmes de pagination ;

  • Webpacker pour intégrer Webpack à une application Rails et faciliter la configuration et le développement d’applications de type JavaScript.

Un fort respect des standards

Un autre avantage de programmer en Ruby et plus particulièrement avec Ruby on Rails est le fort respect des normes web pour chaque partie d’une application, depuis l’interface utilisateur jusqu’au transfert de données. 

Les applications créées avec Ruby on Rails suivent donc les paradigmes de conception de logiciels : « codage par convention » et « ne vous répétez pas » mais aussi les « modèles d’enregistrement actif » ou active Record qui représentent des moyens spécifiques d’accéder aux données de la base de données.

Rails est aussi construit autour de la philosophie MVC (Modèle-Vue-Contrôleur) qui favorise la modularité et l’extensibilité des applications. Quelle que soit la complexité de ces dernières, elles peuvent être facilement étendues avec de nouvelles fonctionnalités et suivre la logique métier.

En plus de faciliter et d’accélérer une nouvelle fois les phases de programmation, cette standardisation permet, entre autres, aux développeurs de reprendre et modifier plus rapidement des projets tiers.


Les inconvénients de programmer en Ruby

Des performances inférieures aux autres frameworks et langages de programmation

Les performances de Ruby et ROR sont des sujets largement débattus dans les communautés de développeurs IT. 

Le temps de démarrage du framework Ruby On Rails est objectivement plutôt long, surtout pour les gros projets

Un autre argument fréquent en défaveur de la programmation en Ruby est sa vitesse d’exécution « lente », qui rend plus difficile la mise à l’échelle des applications RoR. 

Toutefois, même si RoR est effectivement plus lent que les autres frameworks comme Django ou Node.js, ce manque de rapidité a peu de risque de réellement impacter les performances des applications.

Dans la plupart des cas, les problèmes de performances des applications conçues avec Ruby on Rails proviennent davantage de mauvaises configurations au niveau des accès aux bases de données ou dans l’architecture du serveur.

Un manque de flexibilité

Bien que Ruby puisse être utilisé aussi bien pour le backend, le frontend et les applications web, il souffre d’un manque de flexibilité pour les projets qui requièrent des fonctionnalités non standards.  

Pour ces cas, les réglages et paramétrages peuvent être plus complexes notamment au niveau du framework ROR qui inclut, de base, de nombreuses dépendances « en dur » et des modules prêts à l’emploi. Pour créer un projet « sur-mesure » les développeurs doivent donc configurer le routage, les migrations de bases de données et l’ensemble des autres modules fournis avec ROR afin de l’ajuster aux besoins de l’application.


Une qualité de documentation variable

Si les noyaux de Ruby et Ruby on Rails sont clairement documentés, il est plus difficile de trouver des ressources notamment pour les gems les « moins populaires ». 

Le plus fréquemment les développeurs ont uniquement à disposition des exemples d’utilisation ou des tests et doivent étudier directement le code source pour en comprendre le fonctionnement.

Programmer en ruby comporte donc de nombreux avantages, notamment une simplicité de développement, le soutien d’une forte communauté ainsi qu’une excellente maintenabilité. Ces atouts en font le langage de choix pour les sites tels Airbnb, GitHub, ou encore Zendesk.

Cependant, pour les projets nécessitant un contrôle total sur l’architecture du framework, les modèles, la communication avec la BDD ou les déploiements, Ruby n’est pas le choix le plus judicieux. Sa réputation de langage peu performant le rend également moins populaire face à des concurrents tels que Rust, SoftWin, Go ou Python.

Et vous, avez-vous déjà programmé en Ruby ? Que pensez-vous de ce langage de programmation ? N’hésitez pas à nous partager vos retours d’expérience sur le forum.

Boostez vos projets IT

Les meilleures missions et offres d’emploi sont chez Free-Work

Continuez votre lecture autour des sujets :
# Développeur

Commentaire

Dans la même catégorie