Aller au contenu principal

Le langage Ruby

Publié le 08 avril 2014

Certains parmi vous pensent peut-être déjà joaillerie ou minéralogie, pourtant c'est bien de programmation dont il va être question. Mais ne fuyez pas tout de suite, cet article n'est pas réservé aux spécialistes. Nous essaierons au contraire de rester le plus clair possible, pour vous aider à mieux cerner l'impact que peut avoir le choix d'un langage sur notre quotidien.

La tête la première

Ruby est un langage de programmation libre apparu au Japon en 1995 et standardisé depuis 2011. Son créateur, Yukihiro Matsumoto, l'a conçu comme un ensemble homogène intégrant un best-of des fonctionnalités de ses langages préférés de l'époque, notamment Perl, Smalltalk, Eiffel, Ada et Lisp.

Ruby est simple en apparence, mais son architecture interne est très complexe — tout comme notre corps peut l'être. C'est cette approche qui a été maintenue depuis lors, pour faire de Ruby un langage robuste, porté par une syntaxe naturelle.

Ruby a été écrit pour les humains. D'une pratique agréable et d'une très grande souplesse, c'est un langage aussi créatif et ludique qu'il est sérieux et minutieux. Facile à apprendre, il rend facile l'écriture des premiers scripts mais les développeurs doivent persévérer avant d'en connaître et d'en maîtriser les arcanes. Ruby se prête bien à un travail d'équipe sur un projet… axé humain !

Code is poetry Un haïku écrit en Ruby
Source: http://timelessrepo.com/haiku

Souvent décrit comme un équivalent à Python, Ruby est un langage multi-paradigme qui mêle astucieusement programmations impérative et fonctionnelle à une philosophie Objet. Derrière cette rafale de concepts, comprenez que Ruby est un langage tout terrain, capable de s'adapter à un grand nombre de méthodes de programmation sans devoir faire d'importants sacrifices.

Ruby n'est pas uniquement destiné à faire du web. Il est également utilisé pour automatiser des tâches récurrentes ou pour développer des applications, de la bureautique aux applications mobiles en passant par les jeux.

Un écosystème riche

Comme la plupart des langages de programmation actuels, Ruby s'appuie sur un écosystème de bibliothèques, baptisées gems. Ces composants permettent d'augmenter les capacités du langage pour répondre aux besoins des développeurs.

Une gem peut simplifier l'utilisation de fonctionnalités existantes – comme la manipulation de fichiers – ou en ajouter de nouvelles – comme le support d'un nouveau protocole réseau –. Que vous ayez besoin de transformer un texte en ASCII art, de récupérer des informations sur un réseau social comme twitter ou instagram ou même de simuler et piloter un navigateur web virtuel, il y a de grandes chances qu'il existe déjà une gem pour vous y aider.

RubyGems, “le gestionnaire de paquets de Ruby”, permet de les télécharger et de les installer. Il facilite également leur création et leur partage.

Plusieurs dizaines de milliers de gems sont actuellement disponibles et de nouvelles apparaissent chaque jour.

Comparaison du nombre de bibliothèques disponibles par langage sur l'année 2013. Source : modulecounts.com Comparaison du nombre de bibliothèques disponibles par langage sur l'année 2013.
Source : modulecounts.com

La profusion de composants disponibles nous conduit régulièrement à passer plus de temps à en lire le code, éprouvé et raffiné par la communauté, qu'à coder. Une connaissance approfondie de chaque outil qui permet de se concentrer sur les développements véritablement nécessaires au projet, sans réinventer la roue. On peut ainsi développer plus vite et plus loin.

La grande majorité des gems publiées sont accompagnées de leurs lots de tests unitaires, dont la présence est souvent déterminante lorsqu'il s'agit de faire un choix entre deux bibliothèques proches. Les tests garantissent en effet que le code fonctionne comme prévu et fournissent une documentation supplémentaire sur son utilisation.

Une communauté accueillante

Après avoir passé les premières années de son existence dans une relative obscurité par manque de traduction des documents japonais, Ruby a progressivement intéressé de plus en plus de programmeurs des quatre coins du monde. Cet essor s'est accéléré à partir de 2004 après l'apparition de Ruby on Rails, un framework web extrêmement puissant.

Depuis 2007, le langage a acquis une réelle reconnaissance et possède une communauté grandissante et ouverte. Loin de se cantonner à Ruby-Talk, la toute première liste de diffusion, la communication autour du langage s'est étoffée et de nombreuses initiatives ont vu le jour.

L'apprentissage du langage s'est fortement démocratisé. Si le site officiel proposait depuis longtemps de vous initier à Ruby en quelques instants, on trouve aujourd'hui des méthodes d'apprentissage accessibles aux enfants, comme Ruby for kids ou kidsruby.com. Inspirés par tryruby.org, d'autres sites proposent des formations ou des perfectionnements à Ruby sous des formes plus ludiques, comme Rails for Zombies.

Aujourd'hui, des groupes d'utilisateurs existent dans les plus grandes villes du monde et les conférences à propos de Ruby affichent complet.

Tombés dans la marmite Ruby !

Chez LunaWeb, dur de revenir à PHP après avoir goûté à Ruby.

Depuis que Fabrice l'a fait entrer chez nous à la fin de 2010, le langage et les outils liés ont rapidement colonisé chaque étape de la réalisation de nos projets. Que ce soit pour un prototypage rapide ou pour simplifier la mise en place d'optimisations spécifiques avant la mise en ligne, son impact se fait sentir jusqu'à l'hébergement.

Souple dans sa nature, concis dans son design, exigeant dans sa philosophie, Ruby nous a permis de gagner en puissance, en temps et en qualité sur nos projets. Grâce à sa communauté dynamique et créative, nous profitons de meilleurs outils de conceptions et d'innovations.

Si Ruby reste propice à l'expérimentation, le langage et sa communauté ont depuis plusieurs années déjà gagné en maturité et su se doter d'outils stables, performants et de qualité professionnelle. En nous appuyant sur ces bibliothèques largement éprouvées, nous nous assurons d'un nombre de bugs minimal mais également d'une sécurité accrue et préservée au fil des mises à jour fréquentes.

Ruby et son écosystème apporte une grande sérénité pour réaliser des applications sur-mesure, capables d'évoluer au fil du temps. Nous pouvons ainsi nous concentrer sur le plus important, votre projet et sa concrétisation.