Comment j'ai abandonné Ruby en faveur de Python tout en travaillant sur un backend



Nous avons traduit pour vous un article de Benoit Zen, développeur de logiciels chez Sqreen. Benoit travaille sur un service Web backend et est récemment passé de Ruby à Python.

En 2008, alors que j'étudiais encore en tant que développeur de logiciels, deux de mes amis ont décidé de fonder une entreprise, la nommant Feedbooks. Leur objectif était de créer des livres électroniques de haute qualité que n'importe qui pourrait rapidement trouver et télécharger (si vous le souhaitez, les partager avec des amis). Le projet leur a été présenté comme une bibliothèque numérique samizdat.

Le site Web, qui deviendrait le visage du service, devait être rapide, efficace et facile à gérer. Vers la même époque, la vidéo de démonstration de Ruby on Rails «Comment créer un blog en 15 minutes» est apparue, après quoi les fondateurs ont décidé de travailler avec.

Skillbox recommande: un cours pratique de deux ans, "Je suis un développeur Web PRO . "

Nous vous rappelons: pour tous les lecteurs de «Habr» - une remise de 10 000 roubles lors de l'inscription à un cours Skillbox en utilisant le code promo «Habr».


Quelques semaines plus tard, ils avaient besoin d'aide et ils se sont tournés vers moi.

Comme de nombreux développeurs de ma génération, j'ai travaillé avec PHP et Mysql, ajoutant parfois même ma part au CMS open source. Tout m'était très familier dans la tâche, sauf, en fait, Ruby. Je n'ai même jamais entendu parler de lui (n'oubliez pas, nous parlons de 2008, note du traducteur). En général, j'ai commencé à travailler avec Ruby et j'y ai passé les dix prochaines années.

Pourquoi Ruby?


Le fait est que c'est un langage très expressif. Son principal créateur s'est efforcé de rendre les programmeurs heureux lorsqu'ils travaillent avec Ruby. Et il a réussi. Presque n'importe quel élément ici est un objet. La machine virtuelle Ruby traduit la syntaxe en une véritable déclaration. Il s'améliore constamment, de sorte que le code généré s'améliore à chaque nouvelle version. Ruby est facile à analyser, à modifier ou même à créer des interfaces spécialisées.

À la base, Ruby on Rails est une suite DSL et une infrastructure permettant de créer facilement des applications Web basées sur des modèles. Aujourd'hui, il est particulièrement adapté et adapté à la création d'applications dans lesquelles la logique métier et la modélisation joueront un rôle important.

Dans ma société Sqreen, j'ai travaillé avec Ruby sur le backend. Mais ensuite, assez rapidement, la décision est venue d'utiliser Python.

Vous adorez Ruby, mais passez à Python, pourquoi?


Premièrement, notre backend est un ensemble de plusieurs services, dont certains sont ouverts sur le monde, d'autres non. La première chose qu'un client voit est un site statique d'entreprise généré à l'aide de Jekyll. Ensuite, la barre d'outils s'ouvre - il s'agit d'une application React dynamique. Le panneau fonctionne avec une API dédiée, nous l'appelons «backend pour l'interface externe». Il est notre principal.

Initialement, il a été décidé que nous n'écririons pas l'API dans différents langages, car nous aimerions qu'ils correspondent tous à certaines logiques et modèles métier. De plus, au tout début du voyage, nous avons réalisé qu'au moins le backend pour les agents devrait être facilement évolutif afin de prendre en charge une clientèle en expansion.

Malheureusement, Rails était trop lent. Bien sûr, il n'est pas le seul; il existe de nombreuses microframes pour Ruby, dont la célèbre Sinatra.

Mais nous avons quand même décidé de choisir Python. Il y a deux raisons principales. Tout d'abord, notre guide le connaissait, car de nombreux produits étaient précédemment développés en Python. Deuxièmement, nous avions besoin d'une analyse approfondie des données, ce que Ruby ne fait pas très bien. Et le choix était évident.

Premiers pas avec Python


À ce stade, je n'avais presque aucune expérience avec Python - plus tôt, je n'y écrivais que de petits scripts qui ont aidé à la mise en œuvre globale du projet. J'ai dû rapidement maîtriser et accélérer tout dans le développement de l'API sur laquelle nous avons travaillé. Heureusement, les composants de base ne dépendent pas de la langue que vous utilisez: HTTP / HTML / JSON / REST - tous restent les mêmes. La capacité des applications à communiquer avec le Web à un niveau inférieur est implémentée dans Ruby à l'aide de Rack . En fin de compte, beaucoup de Rack a été emprunté à Python, donc ce n'était pas très difficile à travailler.

Mais qu'en est-il de la langue? Ruby est un langage orienté objet, Python est également orienté objet. Mais encore, la différence entre les deux langues est significative. Ainsi, Ruby décrit les blocs à l'aide de mots clés; en Python, les espaces sont utilisés pour cela. J'avais besoin de m'y habituer, et je préfère le chemin Ruby avec son début / sauvetage / fin. Cependant, Python vous permet d'écrire du code plus efficace qui fonctionne rapidement.

Qu'est-ce que j'ai personnellement fait pour comprendre rapidement la syntaxe Python? L'essentiel - j'ai commencé à pratiquer avec Python Koans , c'est un projet open source qui vous permet d'apprendre Python, en fournissant des tests unitaires de plus en plus complexes.

Python Koans présente les différentes fonctionnalités du langage, la documentation ici est très détaillée.

De plus, j'étudie également la documentation Python - elle est extrêmement complète dans ce langage. La langue est divisée en modules, dont chacun est fourni avec une explication détaillée. Il comprend la réponse expliquant pourquoi le module existe, quel problème il essaie de résoudre et comment implémenter tout cela.

Conseils pour ceux qui souhaitent passer à Python


Si vous êtes un développeur Ruby qui envisage de passer à Python, faites-le, cela pourrait vous plaire. Certes, vous devez vous rappeler qu'avant de commencer à ouvrir de nouvelles opportunités, vous devrez maîtriser de nombreuses fonctionnalités de la langue. Un bon point de départ est le didacticiel interactif et la documentation. De plus, la formation doit être appuyée par la pratique, cela vaut la peine de commencer immédiatement à mettre en œuvre une vraie application.
Skillbox recommande:

Source: https://habr.com/ru/post/fr438960/


All Articles