Chris Castiglione Professeur à One Month. Faculté de l'Université Columbia où j'enseigne la littératie numérique.

Ruby vs Python: quelle est la différence?

3 min read

Lequel est le meilleur, Ruby ou bien Python?

J’ai utilisé à la fois Ruby et Python dans mon travail – et bien qu’ils soient similaires, ils sont également différents à de nombreux égards. C’est une question basique, mais importante, laissez-moi donc vous illustrer la différence entre Ruby et Python.

Ruby vs Python
Quelle est la différence?

Pour préparer le terrain, j’ai d’abord appris le développement Web via Python (et le framework Python appelé Django ). Après avoir passé quatre ans à créer des applications Django, j’ai obtenu un poste sur Ruby on Rails et je m’attendais à une transition simple. C’est alors que j’ai compris que les deux langages et les frameworks étaient très différents et qu’il n’était pas si aisé de passer de l’un à l’autre.

Alors… En quoi sont-ils différents?

Le langage:

L’infrastructure Web Ruby on Rails est construite à l’aide du langage de programmation Ruby, tandis que l’infrastructure Web de Django est construite à l’aide du langage de programmation Python.

C’est là que réside la plupart des différences. Les deux langages sont visuellement similaires mais sont des mondes distincts dans leurs approches de la résolution des problèmes.

Ruby est conçu pour être extrêmement flexible et stimulant pour les programmeurs. Il permet à Ruby on Rails de faire beaucoup de petits trucs pour créer un cadre web élégant. Cela peut parfois sembler magique, mais la flexibilité peut aussi causer des problèmes. Par exemple, la même magie qui fait que Ruby fonctionne quand on ne s’y attend pas, peut rendre très difficile la recherche de bogues, ce qui entraîne des heures de fouilles dans le code.

Python adopte une approche plus directe de la programmation. Son objectif principal est de rendre tout visible pour le programmeur. Cela sacrifie une partie de l’élégance de Ruby, mais donne à Python un avantage considérable lorsqu’il s’agit d’apprendre à coder et à résoudre les problèmes de manière efficace.

Un bon exemple qui montre la différence est de travailler avec le temps dans votre application. Imaginez que vous voulez programmer un mois à partir de maintenant.Voici comment vous feriez cela dans les deux langages:

Ruby
require ‘active_support/all’
new_time = 1.month.from_now

Python
from datetime import datetime
from dateutil.relativedelta import relativedelta
new_time = datetime.now() + relativedelta(months=1)

Notez que Python nécessite que vous importiez des fonctionnalités spécifiques à partir des bibliothèques datetime et dateutil. C’est explicite, mais c’est génial parce que vous pouvez facilement dire d’où tout vient.

Avec la version Ruby, c’est beaucoup moins évident et davantage caché. Nous importons une bibliothèque active_support et maintenant, tous les entiers de Ruby ont ces méthodes «.days» et «.from_now». La lecture est bonne, mais l’origine de cette fonctionnalité dans active_support n’est pas claire. De plus, l’idée d’agrémenter tous les entiers du langage avec de nouvelles fonctionnalités est cool, mais cela peut aussi causer des problèmes.

Aucune approche n’est bonne ou mauvaise; ils mettent l’accent sur différentes choses. Ruby met en avant la flexibilité du langage, tandis que Python met en avant la simplicité et la lisibilité.

Les frameworks Web

Django et Rails sont tous deux des frameworks qui vous aident à créer des applications Web. Ils ont des performances similaires car Ruby et Python sont des langages de script. Chaque framework vous fournit tous les concepts des frameworks MVC traditionnels tels que les modèles, les vues, les contrôleurs et les migrations de bases de données.

Chaque framework présente des différences dans la manière dont vous implémentez ces fonctionnalités, mais elles sont très similaires. Python et Ruby disposent également de nombreuses bibliothèques que vous pouvez utiliser pour ajouter des fonctionnalités à vos applications Web. Ruby a un référentiel appelé Rubygems et Python a un référentiel appelé PackageIndex

La communauté

Python et Ruby ont des communautés importantes derrière eux. Chaque communauté influence la direction du langage, les mises à jour et la manière dont le logiciel est construit. Cependant, Python a une communauté beaucoup plus large que Ruby. Python a prospéré dans une multitude de cas d’utilisation académiques en mathématiques et en sciences, et continue de croître du fait de cet élan. Python est également pré-installé sur presque tous les ordinateurs Linux, ce qui en fait le langage idéal pour les serveurs Linux (les serveurs les plus populaires au monde).

La popularité de Ruby a commencé avec la sortie de Rails en 2005. La communauté s’est développée autour de Rails et s’est depuis lors incroyablement concentrée sur le développement Web. Il est également devenu plus varié, mais n’atteint pas la diversité de Python.

L’usage

Qui utilise ces langages de programmation? Beaucoup d’entreprises. Ruby et Python sont répandus dans le monde de la technologie.

Il existe de nombreux sites Web célèbres construits avec Python, comme Google, Pinterest, Instagram, National Geographic, Mozilla Firefox et le Washington Post. De même, il existe autant d’exemples de sites Web Ruby on Rails . Ces entreprises notables qui utilisent  Ruby on Rails, sont notamment Apple, Twitter, Airbnb, Shopify, Github et Groupon.

Dois-je d’abord apprendre le langage Python ou le Ruby?

Ruby a connu un pic de popularité entre 2010 et 2016, mais il semble que le secteur actuel penche davantage vers Python. Voici un moyen de vous aider à prendre une décision: si vous avez déjà un client, un travail ou un projet spécifique qui vous oblige à connaître Ruby, apprenez-le . Sinon, commencez par apprendre Python . Gardez à l’esprit qu’il existe une différence entre Python 2 et Python 3 . Si vous débutez dans le codage, je vous recommande de commencer par la dernière version – Python 3.

Conclusion: Ruby vs Python?

Tout ce que vous pouvez faire dans Ruby on Rails peut également être fait dans Python et Django. Quel cadre est le meilleur n’est pas une question de capacité. La meilleure question pourrait être: quel langage est le plus adapté à vous ou votre équipe?

Si vous envisagez de vous limiter à la création d’applications Web, envisagez de donner la priorité à Ruby on Rails. La communauté est bonne et ils sont toujours à la pointe. Si vous êtes intéressé par la création d’applications Web, mais que vous souhaiteriez apprendre un langage qui est plus largement applicable et plus compétent en traitement de données analytiques, alors je vous recommanderais d’apprendre Python .

Learn to Code Comment Avatar
Chris Castiglione Professeur à One Month. Faculté de l'Université Columbia où j'enseigne la littératie numérique.