Réinventer la roue et changer le monde (première partie)

lundi 15 août 2022 par SocraticDev

Le monde du développement logiciel célèbre les innovateurs. Ceux qui remettent en question les idées préconçues et s'aventurent sur des terrains inconnus.

Mais le monde du développement supporte aussi les conformistes et les paresseux.

De nombreux dogmes sont d'ailleurs érigés pour conforter les développeurs moyens à faire persister le statu quo:

  • un bon programmeur est un programmeur paresseux
  • il ne faut pas réinventer la roue

Mais nous n'aurions pas l'opportunité d'avoir notre vie facilité par ces outils sans les risques et les coups de génie des innovateurs ayant fait le pari de partir de zéro.

René Descartes et la méthode

René Descartes (1592-1650) est considéré comme le père de la philosophie moderne. Après des études dans un grand collège jésuites, il se détacha de la tradition et des vieux livres pour contribuer au progrès de sciences telles que l'optique, la météorologie et la géométrie. Il refusa de se soumettre au principe d'autorité et rejeta le respect aveugle de la tradition philosophique.

Il publia le Discours de la méthode en français en 1637. À cette époque, la langue des savants étaient le latin. Le français était la langue du peuple non-éduqué.

Pourquoi écrire pour se faire lire par le petit peuple?

Descartes soutenait que tout humain avait suffisamment de bon sens pour découvrir la vérité par eux-mêmes. En autant de suivre une méthode fiable pour diriger son esprit, le progrès dans la connaissance était assuré.

En écrivant ce petit traité dans une langue populaire, Descartes démontre sa confiance en sa méthode pour diriger son esprit vers la connaissance véritable.

Pour découvrir la vérité, il invite le lecteur à douter de tout. De ne prendre aucune opinion pour certaine à moins de l'avoir examiné de près.

La méthode commence par un doute méthodique. Un scepticisme absolu. Mais temporaire.

Si rien n'est certain, pas même ce que je vois ou ce que je peux toucher, sur quelle certitude fondamentale puis-je établir mon cheminement vers la connaissance ?

Je pense. Mon esprit est la chose la plus certaine du monde.

Ainsi Descartes inaugura la philosophie moderne. Une pensée non plus centrée sur les choses du monde, mais sur l'esprit qui pense et qui connaît. Bien sûr, c'est intéressant de connaître la biologie, par exemple. Mais rien ne bat que de connaître son propre esprit.

Notre esprit est l'unité fondamentale de tout notre savoir.

David Heinemeier Hansson et Ruby on rails

David Heinemeier Hansson (DHH) est une figure connue des développeurs web. Il est le créateur du célèbre framework Ruby on rails.

Ruby on Rails, également appelé RoR ou Rails, est un framework web libre écrit en Ruby. Il suit le motif de conception modèle-vue-contrôleur. Il propose une structure qui permet de développer rapidement et intuitivement.

Wikipedia, "Ruby on rails"

Un peu comme pour Descartes, l'élaboration d'un framework web crédible était devenu une nécessité pour DHH. En tant que développeur web, son objectif principal était de construire des applications web et son expérience avec les technologies existantes étaient pour lui toujours aussi frustrantes.

L'idée directrice de Ruby on rails était de favoriser l'expérience positive vécue par le développeur construisant son application web. Il s'est fondé sur son expérience de développeur pour publier un framework poli pouvant être compris et apprécié par tous les développeurs.

un seul maître à bord

[...] je m'avisai de considérer que souvent il n'y a pas tant de perfection dans les ouvrages composés de plusieurs pièces, et faits de la main de divers maîtres, qu'en ceux auxquels un seul a travaillé.

Descartes, "Discours de la méthode", seconde partie

Au début de l'aventure, DHH n'a autorisé aucun autre contributeur à pouvoir effectuer des commits sur le projet. Selon lui, on doit laisser la vision du projet s'établir avant de laisser d'autres programmeurs contribuer. Le risque de gâcher une base de code par une collaboration trop hâtive est trop grand.

conclusion

Je ne crois pas qu'on puisse rejeter du revers de la main l'accusation de "réinventer la roue" du revers de la main. Dans la majorité des circonstances, d'autres développeurs ont vécu des défis semblables aux nôtres. Des solutions souvent plus efficaces et élegantes que nos tentatives sont disponibles en ligne. La plupart des langage de programmation ont des outils 'built-in' pour effectuer des opérations typiques.

Descartes et David Heinemeier ont tout d'abord vécu l'absence de solution comme moteur premier de leurs projets. Ils ont ceci en commun qu'aucune solution n'existait pour répondre à leurs visions.

De plus, en créant un nouveau système de pensée ou un nouveau framework de développement web, la vision est primordiale.

On peut se permettre de réinventer la roue si notre vision promet un progrès considérable vis-à-vis le statu quo.

sources

https://thisdeveloperslife.com/post/1-0-5-homerun

https://thisdeveloperslife.com/post/1-0-7-audacity