Les 8 Piliers de la Doctrine Rails : Pilier 1 – Le bonheur des programmeurs tu assureras

Les 8 Piliers de la Doctrine Rails : Pilier 1 – Le bonheur des programmeurs tu assureras

Ruby on Rails ou ROR pour les intimes, framework web libre écrit en Ruby, connaît un succès grandissant et rassemble une communauté de plus en plus importante et passionnée.

Selon David Heinemeier Hansson (DHH), créateur de Ruby on Rails (2004) et de l’outil de gestion de projet Basecamp dont RoR est issu, une des réalisations majeures de Rails a été d’unifier et de cultiver une tribu fortement soudée autour d’une pensée variée et peu conventionnelle sur la programmation.

DHH a rédigé en janvier dernier un article très intéressant listant et explicitant les 8 piliers de Ruby on Rails qui plus qu’un framework, constitue une véritable philosophie de la programmation et du métier de programmeur selon lui:

Nous lançons donc aujourd’hui une série de billets hebdomadaires pour vous présenter les 8 piliers de la Doctrine Rails. Notre série de billets constitue une synthèse du point de vue de DHH sous-tendant la création de chaque pilier, dans une perspective de découverte d’un aspect « culturel » de la programmation, à savoir la création d’un langage informatique et l’importance des valeurs qui peuvent sous-tendre cette création. Toutefois, si nous tenons à restituer les idées clés avancées par DHH, nous ne partageons pas forcément l’ensemble de ces idées et tenons à rester neutre par rapport à ses arguments. Nous espérons que vous lirez ces billets avec le même regard critique que nous avons eu pour les écrire, et qu’ils vous permettront d’avoir une lecture objective sur la création de Ruby on Rails.

Pilier 1. Le bonheur des programmeurs tu assureras

Ce premier pilier est issu tout droit du principe à l’origine de la création de Ruby : placer le programmeur sur un piédestal. En se mettant au service du bonheur des programmeurs, Ruby s’est placé dès le départ en porte-à-faux avec les environnements de programmation les plus populaires :

  • Là où Python soutient qu’il n’y a qu’une seule façon de faire quelque chose, Ruby se délecte des subtilités et des nuances d’expression de la programmation.
  • Là où Java s’efforce de protéger les programmeurs de leurs propres faiblesses, Ruby les encourage à prendre des risques, quitte à les pousser à l’autodestruction.
  • Là où Smalltalk milite pour la clarté du message, Ruby accumule les mots-clés et structures avec un appétit gargantuesque.

Et c’est bien ce qui a rendu Ruby si attractif aux yeux de DHH  comme de nombreux autres programmeurs après lui. Pour DHH, la découverte de Ruby a été une véritable révélation, un passage  de« faire de la programmation parce qu’il avait besoin de programmer » à « faire de la programmation parce qu’il en est tombé amoureux comme mode d’expression et exercice intellectuel ».

Plus qu’un langage, Ruby est une vision, une contre-culture, un lieu où les marginaux de la programmation peuvent se rassembler et ressentir un vrai sentiment d’appartenance.

Pour donner un exemple concret, prenons un principe souvent associé à Ruby dans un premier temps : le principe de moindre surprise (Principle of Least Surprise), selon lequel Ruby devrait se comporter de manière prévisible (par contraste avec Python). Mais ce principe présentait un problème, il était intrinsèquement subjectif : en effet, prévisible pour qui ? Plus la communauté Ruby s’élargit, plus ce principe devint une source de débats sans fin et finit par s’effacer du devant de la scène. Rails a été conçu selon un principe similaire mais quelque peu différent, le Principe du Plus Large Sourire, qui doit permettre à l’utilisateur de profiter au mieux de sa vie.

Il peut sembler difficile de mesurer le degré de bonheur que Rails permet d’atteindre. Mais à un niveau macro, ce bonheur est palpable dans la communauté, qui se targue de meilleures conditions de travail et de vie.

Une réaction au sujet de « Les 8 Piliers de la Doctrine Rails : Pilier 1 – Le bonheur des programmeurs tu assureras »

Laisser un commentaire

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