Fermer

novembre 12, 2024

À 30 ans, Ruby est-elle dans une crise de la quarantaine ou dans une renaissance ?

À 30 ans, Ruby est-elle dans une crise de la quarantaine ou dans une renaissance ?



Le créateur de Ruby, Yukihiro Matsumoto (Matz), a publié la première version publique du langage de programmation en décembre 1995ce qui rend Ruby à peine à son 30e anniversaire. Il s’est répandu dans les groupes de discussion Usenet en langue japonaise, un moyen populaire d’échanger des conversations et des médias avant le World Wide Web, puis a atteint des communautés plus larges tout au long de la fin des années 1990.

C’était grâce à la communauté amicale de Ruby et, en grande partie, grâce à Matz. (La communauté a une devise : « Matz est gentil, et donc nous sommes gentils. ») Lors de la Ruby Konferenze européenne annuelle — EuRoKu — de cette année à Sarajevo, Matz a déclaré avoir créé Ruby parce qu’il était « paresseux et plein d’orgueil ».

Cela ne semble pas justifier la création et le maintien d’un langage de programmation depuis 30 ans, mais c’est un signe de son humilité moqueuse qui nourrit Ruby et en a fait une communauté généralement accueillante au fil des décennies.

30 ans d’histoire de Ruby

Le langage de programmation est apparu lorsque la croissance rapide des technologies liées au Web a adopté des langages légers, plus faciles à apprendre et à exécuter tels que PHP et Python. Bien que les trois langues aient une myriade d’autres utilisations, le timing et des facteurs externes les ont souvent propulsées vers une plus grande popularité. Pour Ruby, c’était le Rails cadre en 2004 et deux livres – celui de Dave Thomas Programmeur pragmatique en 1999 et POURQUOI (poignant) Guide de Ruby en 2005*.

Bien que le livre de Thomas ne couvre pas Ruby en détail, il le mentionne et l’auteur a continué à promouvoir le langage pendant de nombreuses années après sa publication. Le livre, en général, a été un succès à long terme et a contribué à accroître l’intérêt pour Ruby au début de sa vie.

Parfois, Ruby on Rails ressemble à une bénédiction et à une malédiction pour Ruby lui-même. Pour de nombreux développeurs, il s’agit d’une seule et même chose. Les événements Rails attirent généralement plus de participants. La plupart des fonctionnalités et modifications récentes de Ruby sont venues en amont de Rails.

Enfin, le créateur de Rails et fondateur de 37Signals, David Heinemeier Hansson (DHH), est un nom beaucoup plus reconnu dans la communauté plus large de la programmation et de la technologie et est une présence vocale en ligne. Un participant à EuRoKu avec qui j’ai parlé a déclaré que même si la communauté ne veut pas l’admettre, les deux projets sont étroitement liés.

De nombreux sites Web 2.0 apparus au début des années 2000 fonctionnaient sur Rails, et beaucoup le font encore (au moins en partie), notamment Airbnb, GitHub, Twitter (maintenant X), Netflix et Shopify (un autre contributeur et sponsor majeur de Ruby). Rails a introduit de nombreuses fonctionnalités dont tout développeur plus âgé (comme moi) se souviendra à quel point elles étaient révolutionnaires, et de nombreux jeunes développeurs les prendront désormais pour acquis. En tant que développeur Drupal PHP à l’époque, je me souviens avoir regardé avec envie des fonctionnalités telles que la création, la gestion et la migration de tables de base de données.

Même si le suivi des intérêts et des termes de recherche pour Rails indique un quart de ce qu’il était autrefois, l’utilisation réelle reste raisonnablement proche de son apogée. Cela montre que de nombreux développeurs qui l’utilisent sont à un niveau supérieur et savent largement ce qu’ils font.

L’enquête Planet Argon 2024 le confirme : près de 70 % des répondants avaient plus de sept ans d’expérience et exécutent leurs applications depuis environ la même durée. je ne sais pas combien nouveau les projets choisissent Rails, mais il y en a suffisamment de préexistants pour maintenir un intérêt sain pour un projet vieux de 20 ans.

Si l’on supprime le pic d’intérêt de Ruby qui a duré plusieurs années après la sortie de Rails, alors Ruby est aussi populaire qu’il y a 30 ans. Selon les statistiques de Tiobec’est légèrement plus populaire. L’enquête Stack Overflow 2023 évalue la popularité de Ruby à 16 sur 50 langues, et une enquête IEEE de 2024 et PYPL rapporte à peu près la même chose.

Il est facile de faire des comparaisons statistiques négatives ou inexactes avec un incident sans précédent, mais en les faisant abstraction au fil du temps, vous voyez une histoire différente.

Chaque langue avec quelques décennies à son actif a un certain bagage technique ou communautaire, et j’ai ressenti la même impression avec Ruby en général et lors de l’événement EuRuKo. La communauté était sympathique et accueillante mais pleine de références et de noms qui ne me disaient rien. Certes, toutes les communautés le font dans une certaine mesure, et peut-être que d’autres événements soutiennent les nouveaux arrivants, mais il y a eu peu de discussions de niveau débutant.

Les 30 prochaines années

Mais assez de passé lointain. Qu’est-ce que Ruby a récemment ajouté, modifié ou prévu pour maintenir l’intérêt des développeurs actuels et peut-être en attirer de nouveaux ?

Ruby est un langage interprété, ce qui signifie qu’il est converti d’un code lisible par l’homme en un code exécutable par machine lorsqu’il est exécuté, souvent dans une machine virtuelle qui s’exécute sur une machine physique. Une critique moderne de Ruby, et de tous les langages interprétés, est qu’ils sont trop lents pour l’échelle des applications modernes.

Ruby dispose d’un interpréteur par défaut, CRuby (anciennement « Matz’s Ruby Interpreter »), qui traduit le code en instructions exécutées par la machine virtuelle Ruby. Mais Ruby et la communauté ont ajouté des interprètes alternatifs et plus performants, en particulier au cours des dernières années, y compris plusieurs options de compilateur « juste à temps » (JIT), qui sont une technique populaire pour accélérer le code compilé dans les langages interprétés.

D’autres langages de programmation, tels que C, C++ et Rust, sont des langages compilés, transformant le code lisible par l’homme en code lisible par la machine avant son exécution. Bien qu’elles ne soient pas principalement conçues pour fonctionner en tant que langage compilé, d’autres options le rendent possible avec Ruby.

Cependant, compiler des langages n’a rien de nouveau, et comme je l’ai mentionné dans mon résumé de la KubeCon EUWebAssembly (WASM) est le présent pour certains et l’avenir pour beaucoup. Principalement, WASM vous permet d’exécuter des langues prises en charge dans le navigateur (mais en propose désormais bien plus, c’est peut-être un prochain article), apportant des applications complexes et puissantes au navigateur. Depuis 2022, Ruby est capable de compiler vers WASM. Si vous avez utilisé Mastodon dans le navigateur, il s’agit d’une application Ruby on Rails fonctionnant sous WASM.

Lorsque Ruby a vu le jour, les monolithes constituaient le modèle d’architecture d’application courant : une grande base de code écrite dans un seul langage qui gère toutes les fonctionnalités et tous les services. Ces dernières années, les microservices sont devenus la conception architecturale la plus populaire, du moins dans un monde idéal.

Au lieu d’une grande base de code multifonctionnelle et monolingue, une application est divisée en un large éventail de bases de code et de langages qui communiquent entre eux. Ruby n’a jamais vraiment été conçu avec cette architecture à l’esprit, et vous pouvez suivre son déclin parallèlement à l’augmentation des microservices.

Ces dernières années, Ruby a ajouté des fonctionnalités pour suivre les changements susceptibles de surprendre ou de tenter les développeurs non Ruby. Ceux-ci incluent du code asynchrone et threadé, permettant aux applications de communiquer simultanément avec d’autres applications et services.

De nombreux langages modernes prennent en charge ces fonctionnalités, mais la syntaxe de Ruby est plus simple que celle de JavaScript. Les développeurs d’EuRuKo ont été enthousiasmés par certaines des autres fonctionnalités à venir, qui continuent toutes à ajouter des options créatives pour codage avec la langue.

Bien que de nombreux développeurs puissent désormais rejeter Ruby comme une option de départ, il a également inspiré de nombreux autres langages, directement et indirectement, qui peuvent convenir au développeur contemporain alimenté par les microservices.

Élixirapparu pour la première fois il y a 12 ans, s’est inspiré de Ruby et son créateur, José Valim, était issu de la communauté Ruby. Elixir est davantage optimisé pour une concurrence élevée et une faible latence, ce qui le rend bien adapté aux secteurs de la finance et des télécommunications.

Cristalcréé il y a dix ans, compte également des membres de la communauté Ruby comme mainteneurs. Sa syntaxe est davantage inspirée de Ruby mais ajoute des fonctionnalités qui rendent le langage plus stable et plus fiable, notamment l’exécution telle qu’elle est compilée au lieu d’être interprétée.

Communauté motivée

Pourquoi les développeurs Ruby de longue date l’utilisent-ils encore malgré la pléthore d’options nouvelles et brillantes parmi lesquelles ils peuvent choisir ? Dave Thomas m’a raconté comment il a découvert Ruby parmi des dizaines d’autres langages avec lesquels il jouait sur les forums Usenet dans les années 1990. « J’ai été époustouflé. J’ai joué avec Ruby pendant une journée. J’ai joué avec le lendemain. Et j’ai continué à jouer avec après cela, et c’est devenu mon langage de programmation de prédilection lorsque j’avais le choix.

Et pourquoi Thomas continue-t-il à utiliser Ruby 30 ans plus tard ? « Ruby vous permet de trouver des moyens de vous exprimer sans trop vous dicter. Comme lorsque vous écrivez de la prose et essayez de trouver la bonne formulation et la bonne structure pour vos mots, Ruby vous permet de faire la même chose avec le code. Vous pouvez expérimenter de belles façons d’exprimer les choses, pas seulement une seule façon.

Je ne suis pas susceptible de basculer aucun de mes projets actuels vers Ruby, et je ne sais pas non plus combien de développeurs établis dans d’autres langages le feraient. Cependant, une attitude que j’ai entendue à maintes reprises lorsque je parlais avec la communauté Ruby était la « liberté de choix créatif ».

De nombreuses autres communautés de langages de programmation regorgent de conseils sur la « bonne façon » de faire les choses, qui sont bien sûr différentes selon la personne à qui vous vous adressez. La communauté Ruby suit une approche différente, en fournissant des outils aux opinions douces pour vous permettre de trouver votre propre voie.

Le monde technique regorge de tendances qui vont et viennent et de gens qui vous disent que vous avez tort dans vos décisions. Si la communauté Ruby est l’une des rares à ne pas juger, alors, quels que soient sa tendance ou ses pourcentages d’utilisation, puisse-t-elle durer longtemps.

_______

* Si vous n’avez pas lu le guide WHY, il est disponible gratuitement et se compose à parts égales d’un livre de programmation, d’une bande dessinée et d’un voyage surréaliste de réalisation de soi. À cause de cette étrange combinaison, cela divise. Certains disent que c’est le seul livre avec lequel ils ont appris la programmation. D’autres trouvent cela complètement déroutant et déroutant. Pourtant, son style unique et son auteur mystérieux ont également accru l’intérêt pour la langue à ses débuts.




Source link