read_and_write.pngConnaissez-vous des gens qui écrivent sans jamais avoir appris à lire ? L'idée est assez saugrenue.

Et pourtant...

Il ne faut pas chercher plus loin que dans l'industrie du logiciel.
On ne compte plus les professionnels qui écrivent du code à longueur de journée mais n'ont souvent jamais appris, ou simplement pris le temps de lire.

A ceux qui m'opposeront que écrire du code n'a rien à voir avec écrire de la littérature, je suggèrerai d'aller lire le dernier billet d'Antoine[1].

A moins d'être un génie qui jongle avec les mots comme d'autres jonglent avec un ballon ou avec des notes de musique dès leur plus jeune age, il y a un passage obligé pour arriver à écrire des choses de manière intelligible : la lecture.


Ma fille ainée a eu 10 ans hier. Il y a trois jours, elle m'a montré avec fierté une rédaction qui vient de lui valoir les félicitations de sa maitresse. Une histoire sur le cirque. Ce qui m'a le plus impressionné, c'est son application à dépeindre les personnages tant du point de vue physique qu'à travers leurs traits de caractère. Je lui ai demandé comment lui était venue l'idée d'écrire de cette manière là. Le plus simplement du monde, elle m'a répondu "c'est comme ça qu'ils font dans les livres".

Je ne connais pas de parents ayant pour préoccupation majeure la capacité de leur enfant de 10 ans à inventer et rédiger une histoire. Moi le premier. Si jamais cela arrive, on le reçoit comme un cadeau. Par contre, la plupart des parents que je connais seraient vraiment inquiets si, au même age, leur progéniture était incapable de déchiffrer une phrase.

Il faut croire que, dans le monde du logiciel, tout marche à l'envers. On s'intéresse beaucoup à la capacité qu'a un développeur d'écrire un programme. On s'intéresse plus rarement à sa capacité à le lire.
Toutes les Beaucoup de[2] formations sont axées sur l'écriture de code après quelques rudiments d'orthographe et de syntaxe, voire quelques notions de grammaire pour les plus chanceux.
L'employeur d'un développeur n'en demande pas plus. Il semble se complaire dans une sorte de "On s'en fout qu'il sache lire. On s'en fout que ce soit bien écrit. Tout ce qui compte c'est que le résultat plaise au client".

C'est en tout cas ce que j'ai souvent ressenti et le je m'enfoutisme vient parfois des développeurs eux-mêmes. Pour moi qui ai découvert ce qu'était un logiciel en recopiant inlassablement des pages entières de listing à la "grande époque" d'Hebdogiciel, c'est tout simplement inconcevable.
On ne peut bien écrire du code que lorsque l'on a passé du temps à lire du code, bon ou mauvais, à s'en imprégner, à en découvrir les forces et les faiblesses.

Le code, c'est une production humaine. C'est l'oeuvre d'un humain qui se parle à lui même et aux autres avant même de parler à la machine. Lorsqu'il écrit du code, un développeur devrait se demander comment celui-ci va être lu avant de se demander comment il va être compris par la machine.

Je laisserai le mot de la fin à un tweet de Jason Gorman.
Ecrire du code qu'un ordinateur comprend, c'est de la science. Ecrire du code que les autres programmeurs comprennent, c'est de l'art.

Notes

[1] sans lequel ce billet-ci n'existerait pas

[2] cf commentaire de Tok'