J'en savais peu sur le pianiste québécois André Mathieu, mis à part qu'il existe une salle de spectacle à son nom au Cegep Montmorency (dans une ville du nom de Laval dont j'ai déjà parlé et sur laquelle Mononc Serge a composé une poésie si élogieuse). C'est après avoir visionné le film L'enfant prodige que j'ai amorcé une réflexion qui m'a fait réaliser le rapprochement entre la musique et la programmation.
Tous les jours, j'enfile mes écouteurs pour m'isoler des distractions extérieures et j'entre dans ma zone. Une fois concentré, je me mets à programmer en enfonçant les touches au rythme de la musique, comme s'il s'agissait d'un métronome. Comme pour la création musicale, on peut être inspiré durant la tâche de programmation. Il s'agit principalement de traduire la vision du monde qu'on s'est construit dans sa tête et d'en saisir le code dans la machine, par l'entremise du clavier, dans le but de plaire aux utilisateurs qui apprécieront l'ensemble final.
Avec l'expérience, on devient virtuose du clavier. Une disposition standard sur un piano compte 88 touches alors que sur l'ordinateur, ça s'élève à 105. Idéale pour produire des accords ou des raccourcis claviers, la multiplication des combinaisons apprises contribue à maîtriser son environnement à la perfection pour lui faire faire exactement ce qu'on souhaite dans une situation d'improvisation.
Quelques comparaisons supplémentaires :
- Dans la programmation, le code source est l'équivalent de la partition que seuls les initiés peuvent décrypter et interpréter.
- Dans les deux cas, on respecte une syntaxe, une certaine convention d'écriture.
- On peut trouver la beauté à regarder du code source et sans même l'exécuter, y reconnaître le génie par la partition.
- La musique est typée par ses propriétés : hauteur (fréquences des notes) et durée (blanches, noires, croches) alors qu'en programmation, on parle integer, char, float, boolean.
- Un bloc de code peut s'apparenter à une mesure.
- Les deux ont en commun des structures de contrôle de boucles qui répètent des mesures ou des portions de code.
- Substitution de la lettre a par e sur "coda" = "code".
- Sur une partition, un Del Signo "D.S." est l'équivalent du méchant GOTO ou JUMP des langages de programmation.
- Il ne faut pas négliger l'apport des compositeurs italiens à la musique classique occidentale. Code spaghetti.
- La musique compte aussi beaucoup d'exceptions.
- Dans la notation internationale (C, D, E, F, G, A, B, soit de DO à SI), le C (DO) est à la base de la gamme des langages à apprendre à partir duquel tout découle.
- Un accord serait un design pattern...
- Une fausse note ? Un bogue !
Comme pour la musique, la vie de programmeur n'est pas facile (quoi qu'on est sans doute mieux payé). On finit par voir de l'abstraction partout. Le génie finit par nous rendre fous...