Communication

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