lundi 2 juillet 2012

I iz a writer

Avec le mouvement software craftsmanship, il se peut que certains développeurs pensent qu'ils font de l'art, de la littérature. Je ne parle pas seulement des développeurs Perl ! J'ai vu une fois un commentaire sur un blog disant que les programmeurs pouvaient prétendre au droit d'auteur (je n'ai plus le lien alors vous êtes obligés de me croire).

Peut-on faire un amalgame aussi simplement ? Il est vrai que nous avons besoin de développeurs soigneux, qui aiment suffisamment leur métier pour avoir envie de le faire bien : tester le code, le relire et en améliorer la structure, le faire relire par un pair. Comme la littérature, programmer est encore dans la majorité des cas un travail d'écriture. Comme pour un texte littéraire, les programmeurs ont tous leur style et leur personnalité transparait dans leur travail. L'objectif est toutefois complètement différent. Le but d'un programme est d'être exécuté, interprété par la machine pour réaliser des actions. Nous écrivons des ordres qui doivent être clairs, non ambigus. Un lecteur humain aimerait-il lire des ordres ? Je ne crois pas : ça aurait peu d'intérêt. Utiliser interpréter sous entend que le lecteur extrait sa compréhension d'un écrit en faisant intervenir son intellect. La machine n'interprète pas. Elle exécute les ordres que nous lui passons. Si nous pensons que la machine interprète, nous donnons crédit aux excuses minables telles que "mais, la machine ne fait pas ce que je veux !". Non bleusaille, la machine fait ce que tu dit !

Heureusement, le lecteur humain est différent. Nous pouvons considérer qu'il interprète. Un texte littéraire fait appel à la conscience du lecteur, à sa culture, sa mémoire intellectuelle et sensorielle. Le sens d'un texte littéraire est unique pour chaque lecteur. C'est un peut comme si l'auteur plantait une graine qui poussera différemment à travers chaque lecteur. Nous sommes loin du déterminisme que nous recherchons à l'écriture d'un programme.

Amis programmeurs, vous pouvez vous prendre pour des auteurs. Toutefois, tant que vous n'exécutez pas votre code sur Skynet, vous le serez en écrivant pour des humains.