De nombreuses personnes confondent Ruby et Ruby on Rails. En conséquence, malgré plusieurs différences principales, leurs noms similaires et leur origine commune continuent de semer la confusion, en particulier chez les nouveaux développeurs.

Cet article vise à dissiper cette confusion, en explorant leur histoire commune et en fournissant des informations de base sur le moment où vous pouvez coder avec Ruby ou passer directement à la construction avec Ruby on Rails.

De Ruby à Rails

En quoi Ruby est-il différent de Ruby on Rails ?

Ruby est un langage de script à usage général, orienté objet et largement répandu, basé sur le langage de programmation C. Il s’agit d’un langage multi-plateforme supporté par Windows, macOS et Linux. Ruby a été conçu dans un souci de simplicité et d’agrément pour les développeurs. Il est très utilisé pour le développement d’applications web.

Ruby on Rails, parfois appelé simplement « Rails », est un framework de développement web open source basé sur le modèle architectural modèle-vue-contrôleur (MVC). Rails permet de développer des applications web basées sur des bases de données et utilise le langage Ruby.

Approfondissons ces deux aspects.

Qu’est-ce que Ruby ?

Ruby a été créé en 1993 par le programmeur japonais Yukihiro Matsumoto, également connu sous le nom de Matz. La première version de Ruby, Ruby 0.95, a été publiée le 21 décembre 1995.

Ruby, comme Perl et Python, est un langage de programmation interprété de haut niveau conçu pour la productivité des programmeurs. Matz a créé Ruby comme un langage orienté objet, à l’instar d’Ada, afin d’atteindre un équilibre parfait entre performance et simplicité.

Selon Matz, ses principes directeurs lors de la création de Ruby étaient de créer un langage de programmation qu’il aimait coder, qui était amusant à utiliser pour les autres développeurs, et qui limitait la quantité d’effort nécessaire à la programmation.

Au cours de la dernière décennie, Ruby s’est régulièrement classé parmi les langages de programmation les plus populaires. Ce qui attire de nombreux développeurs vers Ruby, c’est sa simplicité et sa faible barrière à l’entrée pour les débutants.

Examinons quelques-unes des caractéristiques essentielles de Ruby.

Un langage de programmation polyvalent

Ruby est considéré comme un langage purement orienté objet. Tout dans Ruby est un objet. Même les types de données primitifs comme les entiers ont des méthodes, des variables d’instance et supportent le chaînage de méthodes.

Par exemple, vous pouvez utiliser deux méthodes différentes sur un entier en utilisant la notation point pour trouver la valeur absolue et l’élever à la puissance trois, le tout en une seule ligne. Jetez un coup d’œil au code ci-dessous. Ici, abs est utilisé pour trouver la valeur absolue de -3, et pow(3) élève la valeur absolue de -3 à la puissance 3.

value = -3.abs.pow(3)

Ruby est un langage de programmation polyvalent que les développeurs peuvent utiliser pour créer différents types d’applications. Il prend également en charge l’approche de la programmation fonctionnelle, dans laquelle les programmes sont un ensemble d’instructions regroupées en procédures équivalentes à des fonctions.

Bibliothèques

Ruby propose aux développeurs un large éventail de bibliothèques intégrées. Il fournit également un gestionnaire de paquets appelé RubyGems avec une collection de paquets, appelés gemmes, créés par d’autres développeurs au sein de la communauté Ruby. Ces gemmes permettent de développer ou de modifier les capacités et les fonctionnalités des applications Ruby existantes.

Chaque gemme contient du code et les outils de test correspondants, de la documentation et une gemspec – un fichier contenant des informations sur la gemme. La gemspec contient le nom de la gemme, sa description et toutes les dépendances dont elle a besoin.

Prenons l’exemple de la gemme populaire k8s-client. Les développeurs Ruby peuvent ajouter cette gemme à leur application, ce qui leur permet d’accéder à la bibliothèque client Kubernetes.

Il existe également des gemmes pour des cas d’utilisation particuliers, comme nytimes_top_stories. Comme son nom l’indique, vous pouvez incorporer cette gemme dans votre application pour obtenir les titres récents du New York Times.

Utilisations de Ruby

Les utilisations les plus courantes de Ruby sont le développement web, les générateurs de sites statiques (développement frontend), les applications côté serveur, DevOps, l’automatisation, les outils en ligne de commande et les applications de traitement de données.

En voici quelques exemples :

Avantages et inconvénients de Ruby

Ruby offre de nombreux avantages par rapport à d’autres langages de programmation. Il présente également quelques inconvénients. Les listes ci-dessous mettent en évidence certains des avantages (et inconvénients) de Ruby. Tenez compte de ces points lorsque vous déciderez si Ruby convient à votre cas d’utilisation ou si vous devriez plutôt utiliser un langage comme Python ou C#.

Avantages

  • Facile à utiliser et offre des fonctionnalités prêtes à l’emploi pour le développement.
  • Nombreuses bibliothèques tierces développées par une communauté amicale de développeurs Ruby.
  • Conçu pour augmenter la productivité et minimiser le travail, il offre des temps de développement plus courts que d’autres langages.

Inconvénients

  • Les performances peuvent être lentes en raison d’une forte consommation de mémoire et d’un ramassage inefficace des déchets.
  • Il s’agit d’un langage polyvalent, mais il est plus adapté au développement web – il est moins performant dans d’autres domaines tels que le développement bureautique.
  • Il est toujours considéré comme un langage de niche, bien qu’il ait été beaucoup développé depuis son introduction. Pour cette raison, il n’attire pas autant de développeurs que ses homologues, comme Python.

Qu’est-ce que Ruby on Rails ?

Ruby on Rails est l’un des frameworks les plus populaires pour développer des applications web avec Ruby et il est disponible sous la licence MIT. C’est aussi l’une des raisons les plus courantes pour lesquelles les développeurs apprennent Ruby. En tant que framework, Ruby on Rails simplifie la création d’applications web en fournissant une structure pré-construite et tous les composants nécessaires à la création d’une application web, de sorte que les développeurs n’aient pas à tout créer à partir de zéro.

La structure pré-construite d'un projet Ruby on Rails.
La structure pré-construite d’un projet Ruby on Rails.

Grâce à l’architecture MVC, vous pouvez utiliser Ruby on Rails pour créer des applications complètes qui couvrent le frontend et le backend.

David Heinemeier Hansson a lancé Ruby on Rails en tant que projet open-source en 2004. Hansson a créé Ruby on Rails alors qu’il travaillait sur l’outil de gestion de projet Basecamp de la société 37Signals. Ruby on Rails met l’accent sur le paradigme « convention over configuration » (CoC) et sur le principe « don’t repeat yourself » (DRY). CoC signifie que les développeurs écrivent moins de code et effectuent moins de configurations s’ils suivent des conventions prédéfinies. Le principe DRY permet d’éviter la redondance et de réduire la répétition des modèles de logiciels.

Comme Ruby, Ruby on Rails était plus répandu dans ses premières années et a pris du recul avec l’émergence de nouveaux frameworks. Malgré cela, il a mûri au fil des ans et s’est assuré un public important. Les développeurs choisissent toujours Rails parce qu’il suit des conventions qui structurent le développement, rendant le code facile à lire et à écrire et accélérant le processus de développement et le délai de mise sur le marché.

Utilisations de Ruby on Rails

Si Ruby a de nombreux cas d’utilisation, Ruby on Rails est beaucoup plus ciblé. Il s’agit d’un framework axé uniquement sur le développement d’applications web. Bien que son champ d’application soit restreint, il est très performant dans ce qu’il fait. Ruby on Rails a été utilisé pour créer certaines des applications web les plus populaires, comme GitHub, Twitch, Soundcloud, Shopify, Hulu, Airbnb et BaseCamp.

Avantages et inconvénients de Ruby on Rails

En tant que framework open source, Ruby on Rails offre plusieurs avantages que les développeurs, quelle que soit leur expérience, peuvent apprécier. Cependant, le framework n’est pas sans compromis. Le choix d’un framework étant aussi important que celui d’un langage de programmation, tenez compte des éléments suivants pour vous assurer de faire le bon choix.

Avantages

  • Un framework open source – libre d’utilisation.
  • Bénéficie de l’écosystème très développé de Ruby.
  • Des mesures de sécurité sont intégrées et activées par défaut, notamment une protection intégrée contre les attaques XSS, CSRF et les injections SQL.
  • Un grand nombre de bibliothèques, ou gemmes, font de Ruby on Rails un framework très productif.
  • Permet un prototypage plus rapide et constitue une bonne option pour les MVP.

Inconvénients

  • Le nombre élevé de dépendances de gemmes entraîne des temps de démarrage plus lents, ce qui a un impact négatif sur la productivité des développeurs.
  • La structure prédéfinie et les composants prêts à l’emploi facilitent la création d’applications web régulières en utilisant Ruby on Rails. Cependant, il en résulte un manque de flexibilité qui rend la personnalisation difficile.
  • L’accélération des temps de développement s’accompagne d’un ralentissement des performances, souvent dû à des problèmes d’architecture du serveur et de la base de données. Ces problèmes deviennent plus évidents lors de la mise à l’échelle de l’application.

Ruby vs Ruby on Rails : Principales différences

Nous avons donc examiné les détails individuels de Ruby et de Ruby on Rails. Examinons maintenant leurs différences fondamentales.

Fonctionnalité Ruby Ruby on Rails
Langage vs framework Un langage de programmation écrit en C. Un framework de développement web écrit en Ruby. Ruby on Rails n’a pas de syntaxe propre car il utilise Ruby comme langage de programmation. Ruby on Rails est utilisé pour améliorer les capacités de Ruby dans la création d’applications web.
Sécurité En Ruby, tout est objet. Cela signifie que toutes les données peuvent être encapsulées, ce qui rend le langage plus sûr. Ruby on Rails augmente la sécurité d’un cran en protégeant contre les scripts inter-sites (XSS), en empêchant les injections SQL, en protégeant contre la falsification des requêtes inter-sites (CSRF) et en empêchant les vulnérabilités de journalisation.
Principes Ruby est basé sur le principe de la conception de l’interface utilisateur, visant à augmenter la productivité des développeurs. Ruby on Rails met l’accent sur l’utilisation des principes CoC et DRY afin d’augmenter la productivité des développeurs et de réduire la quantité de travail.
Utilisation Ruby est un langage de programmation polyvalent que les développeurs peuvent utiliser sur différentes plateformes telles que le web, le bureau et d’autres outils logiciels. Ruby on Rails est uniquement utilisé pour le développement web.

Ruby vs Ruby on Rails : Que faut-il apprendre en premier ?

Maintenant que nous avons discuté des différences entre Ruby et Ruby on Rails, vous vous demandez peut-être lequel des deux doit être appris en premier : le langage ou le framework. Choisissez d’abord le langage. Ainsi, si vous souhaitez maîtriser Ruby on Rails, apprenez d’abord Ruby seul. Il n’est pas nécessaire d’apprendre d’abord Ruby pour apprendre Ruby on Rails.

Cependant, c’est la meilleure façon d’apprendre, et vous devrez apprendre Ruby un jour ou l’autre. Il est toujours préférable d’apprendre les bases du langage de programmation sur lequel le framework est basé avant de se lancer dans le framework.

Ceci est vrai pour d’autres frameworks. Par exemple, Laravel est écrit en PHP, et Nest.js est écrit en Typescript. Il est donc plus avantageux d’apprendre le PHP avant de se lancer dans Laravel ou d’apprendre le Typescript avant de se lancer dans Nest.js.

Résumé

Cet article a abordé la confusion compréhensible qui découle des noms similaires Ruby et Ruby on Rails. Maintenant que nous avons parcouru l’histoire et la popularité de Ruby et Ruby on Rails et que nous avons expliqué les différences significatives et essentielles entre les deux, il est clair qu’il ne s’agit pas de la même chose.

Les différences ont été mises en évidence en énumérant et en expliquant certaines des utilisations les plus courantes de Ruby et de Ruby on Rails, leurs avantages et leurs inconvénients, et en énumérant certains sites, applications et outils populaires écrits en Ruby ou utilisant le framework Ruby on Rails.

Ils ont tous deux été créés pour rendre la programmation agréable et augmenter la productivité. Cependant, la principale différence est que Ruby est un langage de programmation que vous pouvez utiliser pour créer des applications de bureau et des applications web. En revanche, Ruby on Rails est un framework d’application web qui améliore considérablement les remarquables capacités de Ruby.

Vous ne pouvez pas utiliser Ruby on Rails sans utiliser Ruby. Ruby on Rails tire parti de la sécurité déjà présente dans Ruby et y ajoute des fonctions de sécurité supplémentaires, ce qui en fait un framework très sûr. De plus, Ruby est basé sur le principe de la conception de l’interface utilisateur, tandis que Ruby on Rails a été développé selon les principes DRY et CoC.

Vous pouvez déployer votre projet Ruby ou Rails sur la plateforme d’hébergement d’applications de Kinsta. Commencez par consulter quelques exemples de démarrage rapide pour lancer votre application.

Steve Bonisteel Kinsta

Steve Bonisteel is a Technical Editor at Kinsta who began his writing career as a print journalist, chasing ambulances and fire trucks. He has been covering Internet-related technology since the late 1990s.