Gurps vs Ruby Logo
JdR

La D&D 5 Python vs la GURPS Ruby

Avec ce titre légèrement abscons, je vous propose dans cette bafouille un audacieux parallèle entre deux JdR et deux langages de programmation.

INTRODUCTION
Il se trouve que je re-fais un peu de programmation, alors que ses dernières années, je me tenais juste au courant des évolutions du monde de la programmation en butinant des sites spécialisés ou en regardant des vidéos de « jeunes » passionnés de programmation frontend et backend.
Il y a plus de quarante de cela, j’ai commencé la programmation très jeune si bien que j’ai failli en faire mon métier. Dans les années 1990 j’ai programmé des sites vitrines pour des commerçants de ma région à base de HTML, PHP et JAVASCRIPT sur du serveur Apache avec des liaisons internet qui ne dépassaient pas le Mega (AOL, Club internet etc…). Pendant deux petites années, j’ai pissé du code et ramassé un peu de sous-sous. 
Puis j’ai bifurqué lorsque France Télécom a senti la bonne affaire et a commencé à proposer des sites vitrine ou commerciaux à tous ses clients.
Je me suis alors retrouvé formateur en PhP – SQL – Javascript – HTML – CSS … Rapidement j’ai pris des fonctions de management qui m’ont définitivement éloigné de la pratique du code. Pour autant, je n’ai eu de cesse de me tenir informé et de pratiquer en dilettante la programmation web. 
Les CMS se sont développés, les nouveaux langages et API ont envahi le monde de la programmation, des nouveaux termes sont apparus, des nouvelles technologies, Linux a pris son essor difficilement et tout s’est accéléré.
J’ai suivi tant bien que mal tout cela et, dernièrement, ayant un peu plus de temps pour moi, je me suis relancé dans la pratique.

DERRIERE NOUS
Après ce petit préambule, revenons au titre de ce billet. 
Lorsque les premiers CSS sont apparus PHP dominait. Puis Python a accéléré jusqu’à devenir, en quelques 20 ans, le langage quasi N°1. 
A l’époque de l’éclosion de DJANGO, le framework Python, lassé de PHP, je me suis mis à Python et en parallèle à un autre langage qui connaissait son petit succès : le RUBY. 
Il n’y a pas eu photo : autant coder en python m’ennuyait, autant coder en Ruby m’amusait. Je me sentais bien en Ruby et comme un écolier en Python. Mais j’ai persisté sur Django car Rails, à l’époque, me paraissait trop « magique » (une reproche qui lui colle encore à la peau). Ecrire en Python ou déployer Django ne me faisait pas vibrer et je retournais souvent bricoler en Ruby pour prendre un bol d’air frais. Bref j’aimais Ruby et pas Python, vous l’aurez compris.

A présent, alors que j’ai envie de coder à nouveau, Python et Ruby sont toujours là. Mais la situation n’est plus la même pour ces deux langages. PYTHON est devenu INCONTOURNABLE et Ruby s’enfonce lentement dans les profondeur des classements des langages. Il se place toujours dans les 20 premiers mais cela est dû à son essor il y a une quinzaine d’année et au succès fulgurant de Rails à ces débuts.

AVERTISSEMENT
Ce qui va suivre ne remets pas en cause la valeur formelle de PYTHON qui est un langage « à tout faire » très puissant, abordable, facile à prendre en main et au potentiel incroyable. Laissez-vous porter par mon délire ! Sans plus.

PARALLELE
C’est alors que le parallèle entre D&D et GURPS m’est apparu.

Clairement l’ascension de PYTHON et sa consécration absolue est comparable à celle du D&D de Wizard of the Coast !

Nous sommes entrés, ces quelques dernières années, dans l’ère de la domination toute puissante du langage Python, jusqu’à atteindre en 2022 un pinacle absolu comparable en cela à la position (ré)atteinte récemment par D&D. 
Mais plus encore dans la comparaison, c’est que Python apparait au travers de différents sondages annuels récurrents comme un langage dont une partie des développeurs disent qu’ils n’aiment pas le pratiquer. Sauf que voilà, il a tellement le vent en poupe qu’il faut « faire du Python à tout pris ». Et en plus il sait quasiment tout faire, ce qui n’arrange rien me direz-vous !

Exactement comme pour D&D que l’on met à toutes les sauces et qui est incontournable malgré les polémiques et le fait que son système ne soit pas le plus glamour du monde (avis tout personnel s’entend). En tous les cas ce n’est pas un système qui me fait kiffer, et je ne suis pas le seul dans ma minorité. Pour autant je suis cerné par l’écosystème D&D ; pris dans une nasse incroyablement uniformisante.
Au doigt mouillé (à partir de chiffres annuels tout de même), depuis trois ans, 80% des kickstarter avancent sous la bannière D&D. A l’instar de la production d’ouvrages sur ou à base de Python qui se démultiplient exponentiellement sur tous les sujets de programmation, là encore depuis quelques courtes années.

De l’autre côté de ce rubicond de gloire (je ne pouvais pas passer à côté), Ruby a eu son heure de gloire. Il a brillé au firmament : en 2013 il se plaçait 4e chez Redmonk. Mais depuis un peu de moins de dix ans, le voilà qui s’étiole lentement (voir cette infographie]) sous différents prétextes et notamment celui de la lenteur.

Le parallèle avec GURPS m’a semblait alors évident.

GURPS est un système qui a connu, il y a longtemps de cela, un succès incroyable et qui, face à l’arrivée de système plus succints (notez que je ne parle pas de système légers), s’est vu opposer le prétexte de « complexité à la création des personnages » ou de « règles modulaires trop denses », pour que, lentement, la rumeur populaire le rélègue dans le fond du classement des JdR pratiqués. 
Cela, au profit d’un système de jeu devenu tout puissant (je parle de la base officielle bien entendu) sous le couvert d’être « plus organisé » (monolithique ?), cadré, plus rapide à mettre en place (soit disant), beaucoup moins modulaire et donc touffu, plus simple à comprendre et pour l’initiation.
Finalement les mêmes vertus que l’on attribut à Python avec son étiquette de langage de programmation d’initiation pour les écoles et les universités, sa manière monolithique d’écrire (c’est une vertu selon ce que l’on attend d’un langage), sa facilité de lecture du code, sa mise en place rapide et son élégance « cadrée » de fonctionnement, sans parler de la richesse actuelle de ses bibliothèques lui permettant d’assurer des résultats efficaces dans nombre de domaines de programmation.

Ruby, lui, avec sa communauté de passionnés (Python en a bien entendu une, mais ne recherchant pas les même sensations de codage) parvient encore à maintenir sa tête hors de l’eau tout en continuant de couler lentement. Tout comme GURPS. 
Certes GURPS parvient encore à faire de belles opérations de financement participatif, à produire (pisser ?) du supplément PDF souvent de qualité, mais comme Ruby qui s’améliore lui aussi dans une parfaite ignorance, invisibilisé qu’il est par l’ombre écrasante de Python, GURPS s’efface progressivement des mémoires et glisse sous le tapis mondial de D&D surtout pour les nouvelles générations de rôlistes. 
GURPS est une histoire pour les « vieux joueurs », les fameux grognards. Tout comme Ruby ne recrute plus que des SENIOR dans ces domaines. Les Développeurs JUNIORS sont eux allaités aux nouveaux langages et surtout à Python dés leurs premiers pas d’initié.

Ruby/GURPS une histoire de vieux donc !

Python tout aussi ancien que Ruby, est parvenu à se maintenir de génération en génération au point d’évangéliser les Enfants des Enfants des Seniors l’ayant adoptés dés 1995. Impressionnant et finalement comparable à D&D.

COMBAT TRUQUE
C’est amusant également d’assister au combat des framework Django VS Ruby on Rails (RoR). 
Au moment d’écrire ses lignes, Youtube est envahi de formations sur Django ; et quasiment plus rien sur Ruby on Rails (RoR). 
Alors que pourtant, RoR a été précurseur dans bien des domaines pour nombre de framework en vogue et que, dans sa dernière version, il fait encore un pas de plus vers l’innovation et la puissance. Pourtant, il continu de perdre du terrain dans un monde devenu PYTHONESQUE.

RoR c’est un peu l’excellent Dungeon Fantasy power by Gurps , la boîte qui démontrait que l’on pouvait sortir par le haut de D&D. Mais seuls les fans avertis connaissent la valeur de cet artefact (on trouve cependant les pdf sur DrivethruRPG).
Et puis, il y a la célèbre prophétie auto-réalisatrice qui n’arrange rien et qui procède de la pire des façons pour soit disant s’inquiéter de l’avenir de Ruby et RoR. On pose la question ouvertement sur la question de la Mort annoncée de ce langage dans des billets et des posts qui se veulent pourtant intéressé par Ruby ou Rails. 
Rares sont ceux qui tournent leur web littérature dans le sens de la défense : Non, rails survivra qu’ils affirment pour s’en convaincre ! 
Encore plus rares ceux qui annoncent même une « remontada miraculeuse ». La majorité s’inquiète bêtement en enfonçant « innocemment » ce langage encore plus prés de la tombe. 
Factuellement, ils n’ont pas tort. 
Mais faut-il encore pratiquer Ruby ou Rails pour apprécier la logique de cette chute. Tout comme pour GURPS et les arguments de ses détracteurs.

Je me gondole d’effroi (un oxymore qui montre bien mon sentiment complexe face à la situation) lorsque je lis que Ruby ou Rails utilisés en par une équipe de programmeurs c’est plus compliqué que Python car il y a plusieurs manière de coder en Ruby alors que Python impose son cadre d’écriture et donc facilite la recherche des erreurs. VRAI ! 
Mais en Ruby, si le code est bien documenté et que le pilote de projet sait poser la norme d’écriture, ça devrait bien se passer. Mais Oui : Python est d’une orthodoxie rassurante, là ou Ruby est d’une compacité et d’une souplesse bien plus électrisante et rafraichissante, voire inventive et efficace.

On retrouve ici le principe de l’orthodoxie de D&D qui infuse depuis longtemps le monde du JdR.

Pourtant comme GURPS avec sa prolifération de suppléments et de rééditions, Ruby avance vers toujours plus d’efficacité et de complémentarité en essayant de répondre aux critiques de la première heure. Sa rapidité s’accroit à chaque version. Rails dans sa version 7 prend encore plus d’autonomie envers d’autres langages support et se développe avec autant d’énergie vers toujours plus d’innovations.

Finalement Ruby se débat encore tandis que fin 2022 on entend, au détour d’un fil de discussion, le bruissement d’une cinquième édition de GURPS.

Mais rien n’y faitJ’ai l’impression que personne n’y croit.
Python occupe l’espace médiatique de la plus belle des manières et vampirise naturellement les esprits. 
Pire ! En 2002, on ne recrute plus que des Seniors pour Ruby ou Rails. Les Junior développeurs-web sont allaités aux mamelles de Python lorsqu’il s’agit de découvrir le monde de la programmation. 
Tout comme la jeune génération de rôlistes ignore à ses début l’existence de GURPS et sa puissance ludique potentielle.

« D&D-Stranger Things sera ton guide ».

Ce qui est rageant c’est de voir ces deux entités, Ruby et Gurps, produire des nouveaux contenus, animer des communautés toujours bien vivantes, chercher à s’améliorer toujours plus, et tout cela dans le plus total désintérêt du plus grand nombre dont le regard reste tourné vers l’étoile la plus brillante.
Les derniers rapports] sur l’état de la programmation en 2022 semblent renforcer la prophétie Ruby is dead !

Je reste cependant positif en espérant qu’il y aura toujours des curieux pour aller tester les richesses de ces deux éléphants aux portes de leur cimetière respectif. 
Je reste positif en espérant que RUBY continuera d’améliorer son langage et de faire évoluer son framework vers toujours plus de singularité et d’efficacité.
Je reste positif en espérant que GURPS osera une cinquième édition sans perdre son âme.

Le positif : il semble parfois ne rester que cela …

Pour info :
performance ruby 3.2 versus Python 3.11

Une autre victime tout aussi puissante que le serpent enjôleur qui étouffe la curiosité : PHARO ou encore SQUEAK de la même famille Smalltalk pour l’initiation.

UN comparatif partisan entre Smalltalk ( inclus PHARO ou SQUEAK) et Python

Pour apprendre Ruby, Rails et Javascript jeter un oeil au Projet Odin
Pour apprendre Python et Django, parmi la multitude de cours, essayer la chaîne de Formation Video

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *