Les 2 trucs les plus durs en informatique

“Il y a seulement 2 problèmes compliqués en informatique : nommer les choses, et l’invalidation de cache”. Citation célèbre de Phil Karlton. Les meilleurs détournements sont recencés par Martin Fowler dans ce billet.

Vous diriez quoi, par curiosité ?

Je me lance : rendre le code simple, tester correctement.

“The two problems in Computer Science are: humans, and doing science” – moi.

D’abord il y a l’égo, qui ruine tout, bien sûr (cf 10 commandments of egoless programming).

Mais je pense tout simplement que très peu de gens/équipes/entreprises abordent leur projet comme une chose scientifique : observations, hypothèses, expériences, conclusions.

Pour qui se prétend “scientifique”, on fait beaucoup de choses au “doigt mouillé” : de la spec au code et aux tests. Qui fait vraiment l’effort de noter par exemple, les parties les plus modifiées de l’application ? Les parties qui ont le plus de bugs ?

Mais peut-être que nous nous prétendons ingénieurs ? “L’ingénierie est une activité rigoureuse de conceptualisation et de réalisation d’ouvrages d’art fonctionnel […], activité s’exécutant alors selon des règles de l’art et une rigueur scientifique.”

Donc si “computer science” n’est déjà pas une “science”, et “software engineering” n’est pas abordée comme de l’ingénierie (ou “du génie” comme on devrait dire), tout est mal nommé et ça ne fait qu’ajouter au malheur du monde (Camus) ;)

Je retrouve cet article de @soveran, et son approche de la simplicité.
Le paragraphe de la fin me donne beaucoup à penser : "le futur de l’informatique sera-t-il comme la logique (on comprend toutes les lois du système) ou comme la biologie (le système est si complexe qu’on se contente d’étudier comment le système se comporte) ?"
http://soveran.com/human-error.html

1 « J'aime »
Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s