Tweeter

Roberto Di Cosmo

Pourquoi codes-tu ?

Programmer permet d'automatiser des tâches repétitives, et de mettre à notre service la puissance toujours plus grande des systèmes informatiques.

Programmer est aussi une activité très proches de la résolution de problèmes, et a un coté ludique certain.

Programmer peut être aussi une question d'esthétique: écrire du code qui fait ce que nous voulons n'est que le début... trouver la façon concise et élégante pour cela est une activité qui donne une grande satisfaction intellectuelle.

Comment as-tu appris ?

J'ai investi toutes mes économies en 1980 pour acheter un Sinclair ZX 80, un tout petit ordinateur programmable en BASIC avec 1Ko de RAM, partagée entre mémoire programme et mémoire vidéo... plus le programme était long, et moins on avait de place pour afficher le résultat à l'écran. C'était très spartiate, mais cela avait l'avantage de faire apprécier les programmes efficaces et concis.

Cette première expérience m'a convaincu à faire des études d'Informatique, et je n'ai plus arrêté... je me souviens encore de la satisfaction la nuit où j'ai pu commencer à utiliser le deboggueur assembleur que j'avais écrit pour débogguer le deboggueur lui-même. Chaque nouveau langage apportait son lot de plaisir quand on comprenait le nouveau paradigme qu'il introduisait: la recursion, avec Lisp, la deduction, avec Prolog, l'orienté objet, avec C++, le typage fort, avec ML, et cela continue.

Quel est ton langage préféré ?

OCaml. C'est un langage fonctionnel très puissant, qui permet aussi d'utiliser des traits objet, ou impératif, avec une efficacité rédoutable et un typage statique fort qui capture un grand nombre d'erreurs directement à la compilation. Une fois qu'on y a gouté, il est difficile de revenir en arrière.

Mais un langage, ce n'est qu'une partie de l'histoire, il faut aussi disposer des bonnes librairies, et des bons outils: selon les besoins, je peut être amené à utiliser un grand nombre d'autres langages de programmation, ce que je fais avec plaisir.

Pourquoi chacun devrait-il apprendre à programmer ou être initié ?

On nous apprend les mathématiques, la physique, la chimie, les sciences de la vie et de la terre, l'histoire-géographie, la philosophie et la littérature. Chacune de ces disciplines est importante pour notre culture générale, pour que nous puissions comprendre le monde qui nous entoure et avoir les instruments nécéssaires pour participer aux débats de sociétés.

Or, notre monde est désormais largement basé sur des logiciels qui traitent presque toutes les données imaginables, et manipulent toutes les informations de notre vie courante.

Il est important de disposer du bon modèle mental quand il s'agit de comprende les conséquences de la mise en réseau de bases de données distinctes, reconnaître la différence entre l'information contenue dans un système et la représentation qui nous est fournie par une interface utilisateur, ou décider de la pertinence d'une demande d'accès aux ressources de notres smartphone par une application de jeu.

Or, comme disait un philosophe napolitain il y a quelques siècles, "connaître, c'est savoir faire", et la programmation est une des clés de la connaissance dans notre monde hyper-informatisé.