Extrait de l'émission CPU release Ex0187 : Ruby.
Bonjour à toi, Enfant du Futur Immédiat, toi qui regarde le sujet de l'émission avec des diamants plein les yeux.
Aujourd'hui, nous allons parler de Ruby [Euphorie sportive dans l'assistance]. Non pas de rugby, pas le sport, de Ruby, le langage,…
[Déception des supporters dans le fond] Vous allez pas me plaquer dès mon intro ? Bon, ok, c'est pas un sujet SCRUM, mais ... roh pis flute. Ruby, donc.
Comme bien des langages serveurs, Ruby est à la fois un langage solide, qui a ses principes et propriétés remarquables, qui est vaillamment défendu par sa communauté mais aussi… mal connu en dehors de celle-ci. Et c'est un tort. Alors découvrons ensemble ce langage, tout comme un minéralogiste découvre une pierre précieuse au milieu d'une roche métamorphique.
Les fichiers sources de ruby ont généralement un suffixe .rb
. Évidemment, des esprits mal tournés iront chercher dans le tableau périodique des éléments chimiques si y'a un élément abrégé en Rb… Alors Rhodium
, Roentgenium
, Ah ! Rb : Rubidium
. Donc les rubis sont-ils fait de rubidium ? h ben non. D'abord le rubidium est un métal. Et le rubis est une pierre précieuse, mais pas un élément chimiquement pur, c'est un cristal d'oxyde d'aluminium (et non de rubidium), une forme de corindon comme le saphir, mais avec des traces de chrome qui lui donnent la couleur rouge profonde spécifique, qui fut celle des premiers lasers, car un rubis en était le cœur.
Le rubis est une pierre précieuse à la magnifique couleur carmin. Tu sais, comme quand tonton regardant son verre tulipe rempli d'un vin rouge, le porte devant la lumière en faisant la moue et dit quelle magnifique robe rubis
.
Enfant du Futur Immédiat, je te rappelle que tu es mineur et que tu n'as pas encore droit de boire de l'alcool sinon je vais dire deux mots à ta mère, et que même si t'as le droit, il faut boire avec modération.
Bon, après si tu es plus féru que lithothérapie que de gemmologie, ben tu as une belle collection minéralogique, mais que tu te fourvoie avec de fausses connaissances, un peu comme ta collection de NFT.
Plouf plouf, sous les huées de l'assistance revenons au langage Ruby.
Ruby en soit est une petite merveille, il est simple à comprendre et se manipule aisément. C'est un langage qu'un humain ayant fait un peu de programmation peut lire et saisir les principes. Il fait partie d'une génération de langage qui sont apparus avec le web, car son créateur, Yukihiro Matsumoto, l'a créé en 1995. Soit à quelques mois près en même temps que le PHP. Mais à la différence de PHP, dont les conceptions objets sont arrivées plus tard, bien plus tard, et on ne commentera pas les erreurs du PHP4 sur le sujet, Ruby a été pensé en tant que langage orienté objet dès le début. Comme le raconte son créateur :
Je discutais avec mon collègue [Keiju Ishitsuka] de la possibilité d'un langage interprété orienté objet. Je connaissais Perl (Perl4, [car Perl5 n'était pas encore sorti]), mais j'y ai jamais vraiment accroché, car on dirait plus un langage bancal (et c'est toujours le cas).
Le domaine des langages orientés objets était prometteur. Je connaissais déjà Python, mais je ne l'aimais pas parce que à mon sens il n'est pas un langage réellement orienté objet. Les fonctionnalités objets t ressemblent plus à un ajout au langage. En tant que maniaque des langages de programmation et fan du concept orienté-objet depuis 15 ans, je voulais un langage facile à manipuler, et réellement conçu pour la programmation objet. J'ai fais le tour, j'ai rien trouvé. Alors j'ai décidé d'en concevoir un.
[Matz dans la mailing-listruby-talken 1999]
Ruby utilise une syntaxe par mots clés sur les structures : les début et fins de structures sont délimités pas par des accolades ou le niveau d'indentation mais par des mots. Et pourtant, l'impression générale est étonnamment sa concision. À une époque où le summum de l'objet est le très verbeux Java, Ruby a tout pour séduire.
Sauf que ce langage va souffrir d'un autre langage : Toute la documentation et présence sur internet du langage Ruby sont quasi-exclusivement écrit en japonais jusqu'en 1999. Or, 日本語の読み方がわかりません (Je ne sais pas lire le japonais).
Et c'est ainsi que le Ruby est resté une pierre précieuse mais rare sur le web.
C'est finalement pendant le règne d'IE6, qui a introduit les appels AJAX et le HTML dynamique que Ruby va dévoiler sa puissance.
D'ailleurs, Apple qui avait lancé Mac OSX en se basant énormément sur la bibliothèque java WebObjects de cette distribution issue de NeXTStep, et notant que faire du serveur web en java demande beaucoup d'efforts, va populariser le langage Ruby en fournissant une version un peu spécifique dans Mac OSX. Et parle aussi de basculer certaines de ses applications web en Ruby on Rails.
Enfin... Ça, c'était au début, la politique de secret de Cupertino est telle qu'il est difficile de s'en assurer 15 ans après. Mais le fait qu'en Janvier 2022, la branche media d'Apple recherche un développeur Ruby on Rails vous donne une idée sur quoi tourne les serveurs de l'App Store, Apple Music, le streaming vidéo et j'en passe.
Quasi 30 ans après sa création, Ruby a fait son petit chemin. Il reste un langage peu connu, il a donc sa côte de rareté, son élégance, sa clarté, sa brillance, sa dureté de typage fort. Comme une pièce précieuse.
Texte : Da Scritch
Illustration : Logo officiel du langage Ruby, CC-BY-SA Yukihiro Matsumoto