Les gars, Ruby est mort ou non?



La dernière fois que je parle avec des développeurs ou des entreprises, j'entends souvent la même histoire avec des mots différents - "nous avons écrit en Ruby, mais maintenant nous bougeons." D'une part, rien de surprenant. Le développement est une entreprise volatile, quelque chose de nouveau apparaît toujours, chaque jour, vous devez dépenser beaucoup de cerveaux pour rester pertinent.

Mais en même temps, il y a une certaine dévotion à la technologie et même au culte de l'instrument. Dites au php shnik qu'il est temps de passer à .NET, vous entendrez «PHP est excellent, il écrit la moitié du monde dessus», ou vous le comprendrez simplement.

Quel est le problème avec Ruby, et où est passée sa popularité explosive? J'ai parlé avec quelques rubistes. Par exemple, Maxim Indykov de Staply, dont l'équipe passe de Ruby à Go, et avec Alexei Kuznetsov de GeekBrains, une entreprise qui a commencé avec des cours Ruby et les a maintenant complètement abandonnés.

Pourquoi Ruby est-il bon?


Maxim Indykov ( maks_ohs ): Syntaxe bien pensée sur laquelle le code semble aussi lisible que possible. Vous pouvez écrire de façon très claire et concise. Un grand nombre de bibliothèques sont implémentées, dont la connexion ne pose pas de problème.

Pavel Serezhin: Le principal atout du rubis est les rails, le meilleur cadre. Des modèles clairement mis en œuvre, pas comme sur node.js, cool comme vous le souhaitez. Le codage lui-même ressemble à l'anglais.

Alexey Kuznetsov: Le langage a une syntaxe légère et très concise qui convient bien pour décrire DSL et la logique métier. Seuil d'entrée bas, communauté sympathique. Un bon candidat pour apprendre comme première langue.

Pourquoi Ruby est-il mauvais?


Maxim Indykov: Exigeant des ressources, toute l'histoire du développement du langage s'accompagne de sérieuses optimisations de la consommation mémoire. Dans l'implémentation de l'interpréteur de référence (IRM), il n'y a pas de véritable multithreading utilisant plusieurs cœurs de processeur (GIL).

Saisie dynamique. Mais cela est difficile à attribuer aux inconvénients, car cela permet d'accélérer le développement, mais avec une perte de qualité.

Pavel Serezhin: La qualité du rubis pour l'écriture est tout aussi dégoûtante pour la lecture. Il est assez difficile de comprendre ce qui se passe, mais Dieu nous en préserve, l'auteur était atteint d'un syndrome du vélo et a fait une merde - au moins, accrochez-vous tout de suite. Parfois, la saisie statique ne suffit pas.

Alexey Kuznetsov: Le langage ne se développe pratiquement pas dans le contexte de ses concurrents les plus proches (JavaScript et Python). La croissance explosive de l'intérêt pour Ruby était principalement basée sur Ruby on Rails. Mais maintenant que les frameworks de type Rails sont dans tous les langages Java populaires, Ruby a peu à offrir. L'absence même de la saisie statique facultative n'ajoute pas non plus de points Ruby.

Dites-moi pourquoi vous l'avez choisi?


Alexey Kuznetsov: Je suis passé à Ruby avec C ++ il y a environ 5 ans et à l'époque c'était un choix raisonnable. Je voulais créer des produits plus proches des utilisateurs finaux. PHP n'avait pas la meilleure réputation. Dans JS, la balle de règles ES5 + JQuery et la syntaxe Python n'étaient pas inspirantes.

Pavel Serezhin: Tout d'abord, en raison des rails, il est idéalement adapté au domaine du développement web, ce que je voulais faire. Et c'est agréable d'écrire dans un langage orienté développeur.

Maxim Indykov: La communauté a vraiment influencé. Un grand nombre de tutoriels écrits et de bonnes pratiques de qualité. Cadre Rails qui rend le développement aussi clair que possible dès le début du projet, jusqu'au déploiement. Une multitude d'approches et d'implémentations pour l'écriture de tests: RSpec, MiniTest et ainsi de suite.

À ce moment-là, pensiez-vous qu'il avait un avenir?


Maxim Indykov: Oui, la langue a constamment évolué (et continue de le faire maintenant). Il y avait un grand nombre de postes vacants. Dans le contexte de php, tout semblait le plus logique et le plus correct.

Pavel Serezhin: Je n'ai jamais pensé que le rubis serait au sommet, mais vice versa. Il a toujours semblé qu'il y aurait peu de développeurs, ce qui créerait une concurrence à l'improviste. C'est vrai - c'est l'un des inconvénients, il est presque impossible d'entrer à partir du niveau de juin sauf dans les capitales.

Pourquoi Ruby est-il de moins en moins nécessaire?


Pavel Serezhin: Maintenant, de plus en plus souvent, ils choisissent simplement des langages et des cadres plus populaires pour créer de nouveaux projets. Le rubis et les rails sont légèrement en retard dans les performances et ne suivent pas les tendances. La prise en charge de Webpack a été fournie aux rails, ce qui n'aide pas beaucoup - il est plus facile de le diviser en deux projets distincts.

Alexey Kuznetsov: Node.js cannibalise activement le créneau des applications Web, et Go est à court de toutes sortes d'utilitaires.

Maxim Indykov: Il me semble que la complication constante des tâches m'a influencé. La solution nécessite soit une augmentation constante de la capacité et une utilisation croissante des ressources, soit des tentatives de ne pas tomber dans le plafond, des astuces architecturales.

Ruby a été créé en tant que tel PL, ce qui plaît aux développeurs, pas aux entreprises. Pensez-vous que son impopularité actuelle est un indicateur qu'une telle stratégie ne fonctionne pas?


Alexey Kuznetsov: Il me semble que la situation est contraire. D'autres langages ont atteint le niveau auquel les développeurs étaient heureux de travailler avec eux (déstructuration dans ES6, flux en Java8, zéro faiblesse dans Kotlin et Swift, un modèle de concurrence dans Go).

Maxim Indykov: Les entreprises veulent économiser de l'argent - les ressources du serveur. Lorsqu'une technologie est disponible qui peut maintenir la charge par des ordres de grandeur plus élevés, peu refuseront d'économiser.
Lorsque cette technologie a un typage strict, ce qui est un plus pour la fiabilité - c'est une autre pierre dans le jardin Ruby.

On dirait que c'est la situation en Russie: il y a eu et il y a du développement php. Puis vint la popularité locale du rubis, qui était décrit comme un tueur de php, mais manquait souvent d'autres arguments commerciaux en plus de «Eh bien, c'est vraiment pratique d'écrire sur Ruby». Tous avaient peur du manque de spécialistes. Avec l'avènement de l'élixir et c'est parti, les arguments sont beaucoup plus compréhensibles.

Devez-vous partir avec Ruby?


Alexei Kuznetsov: Je ne pense pas que nous devrions courir avec Ruby, mais cela vaut la peine de chercher des alternatives.

Maxim Indykov: L'ensemble du marché migre. Les grandes entreprises annoncent l'utilisation de Go. Mais nous parlons de migration dans certains domaines du problème. La connaissance des nouvelles technologies populaires doit absolument être acquise.

Pavel Serezhin: Maintenant, js est beaucoup plus populaire et assez gênant pour pulvériser sur deux langages de syntaxe différents. Historiquement, j'ai plus d'âme pour React, donc je pense laisser la pile complète à l'avant.

Sera-t-il parmi les langues complètement non réclamées?


Maxim Indykov: Non, pour écrire rapidement des prototypes et MVP, où la facilité de mise en œuvre est requise, il n'a pas d'égal. Il existe un champ de projets non labouré qui doit être mis en œuvre rapidement et efficacement. Le moment où l'optimisation est requise peut ne pas venir, mais comme vous le savez, l'optimisation prématurée est mauvaise.

Pavel Serezhin: Je ne pense pas. Pour Ruby, il restera une certaine réputation d'une langue un peu impopulaire, une niche avec sa communauté.

Alexey Kuznetsov: C'est encore loin. Il existe de nombreuses situations où il n'est pas si important sur quoi le projet est écrit. Et beaucoup de développeurs sont prêts pour le week-end à collecter MVP.
Et avec une équipe de rubistes gonflée à bloc, vous pouvez développer avec succès le produit pendant des années (GitHub et GitLab - tous deux écrits en RoR).

Ruby a écrit des millions de lignes de code que quelqu'un doit maintenir.
Mais le nombre de nouveaux projets ne fera que diminuer avec le temps. Je pense qu'environ cinq ans la langue a encore.

Qu'est-ce qui pourrait aider Ruby à rester populaire?


Maxim Indykov: Grande flexibilité pour les développeurs de langage. Implémentez des améliorations pour travailler avec le multithreading.

Pavel Serezhin: Amélioration des performances de la langue elle-même et des rails. Et mettre la société avec une tonne d'argent de soutien.

Alexey Kuznetsov: Ruby n'est pas devenu une citrouille. D'autres voitures viennent d'apparaître. Certains viennent avec des moteurs à réaction, d'autres brillent plus fortement.
Je pense que le typage statique optionnel (et le réglage qui peut être fait par-dessus) pourrait aider.

Lequel des YaP populaires est maintenant le plus approprié pour la rubiste?


Maxim Indykov: Cela dépend plutôt des tâches, mais le plus souvent la réponse à cette question est: l'élixir. Un langage créé par des gens de la communauté ruby ​​/ rails.

Alexey Kuznetsov: En général, je ne suis pas près de me diviser en développeurs par langage de programmation. Cela ne devrait pas être un problème pour un développeur de logiciels de maîtriser une nouvelle pile à un niveau suffisant en 2 à 4 semaines.

Et donc je regarderais vers Go / JS / Swift selon les tâches sur lesquelles le développeur prévoit de se concentrer. Il y a Elixir et Clojure, mais ils ne sont pas courants.

Pavel Serezhin: Presque chaque rubiste qui se respecte part pour Golang. La réponse est donc évidente.

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


All Articles