Nous autres vidéo-joueurs craignons ces horreurs rampantes qui se dissimulent dans nos jeux préférés, prêtes à nous sauter à la gorge : les bugs.
Je saute dans le décor, et j'y reste coincé. Je lance un sort, et les dégâts calculés sont erronés. Je viens enfin d'achever un boss après un combat haletant, et le jeu crashe. Je sauvegarde ma partie, et le lendemain, elle est corrompue et inutilisable.

Le bug, ou le plus grand ennemi du joueur, mais aussi du développeur de jeu vidéo.
Evidemment, nous ne sommes pas les seuls à subir des bugs, puisque tous les logiciels peuvent en être victimes. Moi qui prend plaisir au métier de la programmation depuis quelques années, je peux en attester.
Depuis les premiers jours de l'art de la programmation informatique, nous devons donc subir cette fatalité qui est qu'il est impossible de concevoir des programmes libres de bugs.
Mais alors, d'où vient cette impossibilité ? Pourquoi ne pouvons-nous pas faire comme d'autres branches autrement plus victorieuses de l'ingénierie ?
Je suis tombé hier sur un article extrêmement intéressant de Marti Hearst sur le sujet publié dans le cadre du projet 'Annual Question' de Edge, et grâce à elle, j'ai découvert le nom de Fred Brooks.
En parlant des joies de la programmation, ce monsieur explique : le programmeur, tel le poète, ne travaille qu'avec le matériau de la pensée. Il bâtit des cathédrales dans les nuages avec des nuages, avec sa seule imagination. Peu de média créatifs sont aussi flexibles, aussi aisé à raffiner et retravailler, et aussi susceptibles de générer d'aussi grandes structures conceptuelles.
Et cependant, l'objet-programme, contrairement aux mots du poète, est réel, dans la mesure où il fonctionne et marche, produisant un visible et distinct de l'objet-programme lui-même. Un programme peut imprimer ses résultats, faire un dessin, produire des sons, bouger des bras.
"Notre époque a rendu réel la magie des mythes et légendes."

Mais cette magie a un prix.
Dans beaucoup d'activités créatrices, le medium utilisé est et reste intransigeant. Le bois peut se fendre. La peinture peut baver. Les circuits électriques peuvent griller. Ces limitations physiques da chaque medium contraignent les idées qui peuvent être exprimées au travers d'eux, et engendrent des difficultés supplémentaires dans leur implémentation.
La programmation informatique est différente. Elle travaille en effet sur un matériau complètement malléable. Le programmeur construit des objets de pensée pure - des concepts, avec leurs représentationstout aussi flexibles.
Parce que ce matériau est flexible, le programmeur s'attend à peu de difficulté dans la réalisation de son travail - d'où son optimisme. Mais parce que nos idées et concepts peuvent être erronés, nous avons des bugs - et de là, notre optimisme est en réalité des plus injustifiés.
Tout comme il y a un nombre limité de façon arbitraire d'arranger des mots dans un texte, une variété époustouflante de programmes différents peuvent accomplir la même fonction. L'univers des possibilités est en effet beaucoup trop ouvert, trop peu contraint, pour nous permettre de limiter les erreurs que nous faisons.
Bref, on ne peut pas penser à tout, et à toutes les conséquences de que nous faisons. Cette réflexion va très loin : après tout, nous ne pouvons nous-mêmes, en tant qu'humains, appréhender la vaste complexité des conséquences qu'entraîne la moindre de nos actions. L'effet-papillon est trop complexe à appréhender, et c'est lui qui génère ces autres insectes que sont les bugs. Le jour où nous pourrons faire des programmes sans bug au premier jet, nous aurons l'omniscience de Dieu - mais nous en sommes loin, n'est-ce pas ?
De fait, il y a d'autres raisons pour lesquelles il y a des bugs et que je pourrais expliqer de façon bien plus pragmatiques. Mais j'avoue, j'ai aimé cette analogie du poète dans le métier de la programmation - et certainement avec le métier de faiseur de jeux vidéo.
Nous autres joueurs, nous ne faisons que jouir de l'oeuvre de poètes d'un genre nouveau.
Des oeuvres dont les défauts ne sont que la preuve que nous ne sommes, rien de plus, que des humains.



Répondre avec citation


