Uncle Bob (Martin) a fait récemment parler de lui en critiquant SQL. Que faut-il en penser ?

👍 d’un côté il a raison. Le mariage entre SQL et les langages de programmation n’a jamais été d’une grande élégance. Ce mariage raté depuis 40+ ans à même donné naissance à quelques horreurs : ORMs et failles SQL injection en tête.

J’ai écrit il y a longtemps que l'algèbre relationnelle est une bien meilleure piste d’intégration entre data et software engineering qu’un calculus comme SQL (lien en commentaire).

👎 d’un autre côté, on retrouve dans la critique d’Uncle Bob cette petite condescendance ordinaire et vielle comme l’informatique (et à laquelle il nous a habitué concernant les bases de données). D’un côté il y aurait les logiciels qui méritent un développeur, et de l’autre, ce vulgaire reporting qu’on fait du bout d’un vague terminal.

Sauf que ce point de vue ne passe absolument pas la barre de la critique historique.

1️⃣ D’abord parce que 50% au moins du travail des informaticiens consiste à donner la bonne info à la bonne personne. Un langage comme SQL permet de faire cela souvent plus vite, plus correctement, et pour moins cher que de payer Bob à faire du C ou du Java.

2️⃣ Ensuite parce que le modèle relationnel et SQL ont été inventés précisément parce que les programmes COBOL de Bob étaient bourrés de bugs et avaient un coût de maintenance prohibitif.

3️⃣ Troisièmement, que s’il faut applaudir les agilistes comme Bob d’avoir inventé le TDD (entre autres choses), il faut le faire en observant que la qualité par les tests double le nombre de lignes de code nécessaires. L’invention de Codd, et SQL dans la foulée, vise à réduire ce nombre de lignes par 10, et ne mérite dès lors aucune condescendance.

4️⃣ Enfin par principe de réalité : la très très grande majorité des systèmes que vous utilisez tous les jours sont globalement stables et fiables. Ils le sont entre autres parce que les serveurs de bases de données SQL qu’ils utilisent sont des merveilles d’ingénierie théorique et pratique qui nous sauvent, et de très loin, de la trop fréquente médiocrité d'un secteur, médiocrité que Bob commente fréquemment. Ils nous sauvent par exemple en ne perdant quasi jamais les données : ni lors d'incidents, ni au fil du temps, alors que les langages de programmations et les frameworks à la mode, eux, vont et viennent autant que leurs développeurs.

#SQL #History #SoftwareEngineering

Retour