Bibliographie du cours à Rennes
Ceux qui sont curieux de comprendre ce qui se passe dans les nouvelles
technologies auront intérêt à lire les ouvrages suivants. Par la force des choses,
cette bibliographie est pour l'essentiel en anglais. Désolé, mais il n'y a pas moyen de
faire autrement...
David S. Bennahum, Extra Life, Basic Books, 1998
Une expérience personnelle dans le monde des nouvelles
technologies, racontée avec finesse et sensibilité.
L'auteur raconte comment sa personnalité s'est formée par la
rencontre avec les jeux vidéo, puis l'ordinateur personnel, enfin l'ordinateur partagé
et la programmation. Ce gamin des années 70 (Bennahum est né en 1967) était gêné par
son strabisme et une difficulté à coordonner ses mouvements ; il fut désorienté par
les nombreux déménagements de sa famille, puis par la mésentente entre ses parents. Il
avait trouvé refuge dans un monde imaginaire, "virtuel" avant la lettre.
L'ordinateur et la lecture lui permirent d'élargir ce refuge, de s'y livrer à des
explorations, d'échapper aux pièges de la drogue et de la délinquance.
Les livres nous transforment ; depuis la Renaissance les effets de la
lecture sur le développement personnel ont été souvent expérimentés et décrits.
L'ordinateur nous transforme aussi, mais avant ce livre cette expérience n'avait pas
été décrite dans ses détails et sa profondeur. En retraçant un parcours singulier,
Bennahum aide à mieux comprendre notre propre aventure. Nos relations, notre expression,
l'organisation de nos journées ont été transformées par la messagerie, le traitement
de texte, l'agenda électronique, la documentation en réseau. Les langages de
programmation nous ont ouvert un espace de liberté dont l'entrée se paie bien sûr par
un apprentissage pénible. Quant au Web, il va changer notre façon de travailler, de
faire du commerce, sans parler de l'accès à l'information...
Nous avons acquis, de façon confuse, de nouveaux savoir faire, et nous
cherchons de nouveaux savoir vivre. Il était bon d'en faire le bilan.
Bennahum s'arrête toutefois au seuil de ce que nous apercevons
aujourd'hui : avec Linux, retour en force du développement en réseau dont il a la
nostalgie, recul prévisible du progiciel sur étagère, compilé, clos et intouchable, et
donc une ère pleine d'intérêt pour l'utilisateur. Avec UML, Java, Corba, changement du
rôle et de la nature du système d'information de l'entreprise. Avec Jini, peut-être,
extension de l'informatisation à nos équipements familiers. Ces trois mouvements
complémentaires constituent ce que j'appelle "la nouvelle informatique".
Bennahum en signale les prémices, mais ne la décrit pas.
Alan W. Biermann, Great Ideas in Computer Science, MIT Press,
1997
Un parcours bien balisé, et facile à comprendre, des questions
les plus importantes que pose l'informatique.
Un texte simple, au vocabulaire précis et juste, introduit
progressivement toutes les notions fondamentales. Elles sont si naturelles présentées
ainsi ! j'admire cette pédagogie sans prétention, orientée vers l'efficacité. L'auteur
a travaillé beaucoup pour que le lecteur trouve tout cela facile.
Une fois que vous avez lu Biermann, vous avez compris l'informatique.
Vous n'êtes pas un informaticien, il faut de la pratique pour cela ; mais votre intuition
en algorithmique est bien orientée.
Paul E. Ceruzzi, A History of Modern Computing, MIT, 1998
Un livre au sérieux un peu pesant, mais... il est unique en son
genre.
Il est devenu nécessaire de voir l'informatique avec le recul que
permet l'approche historique. Cependant les historiens ne se sont pas encore attelés à
la tâche : sans doute parce qu'il faut, pour l'aborder, maîtriser à la fois les
méthodes de l'histoire et celles de l'informatique, double compétence peu répandue ;
aussi parce que le domaine effraie par sa complexité.
Il existe des ouvrages partiels et excellents, comme celui de Paul
Carroll sur IBM. Mais pas de vue d'ensemble. C'est cette lacune que Paul Ceruzzi a tenté
de combler.
Il n'y arrive qu'en partie. D'une part, comme souvent en histoire, il
s'arrête au seuil de l'époque actuelle : s'il décrit l'histoire de l'Internet, il ne
décrit pas celle des langages orientés objet, ni des langages de modélisation des
processus, ni les "brokers" comme Corba, ni les changements apportés par
l'Intranet dans les entreprises, ni même l'intelligence artificielle qui est pourtant une
aventure déjà ancienne.
On souhaiterait par ailleurs qu'il aborde son sujet non seulement sur
les plans technique et historique, mais aussi sur le plan philosophique. Comment exprimer
autrement que dans le langage de la philosophie des représentations et des projets dont
l'objet est la façon dont on construit, relie, utilise des concepts ? Comment décrire ce
qui distingue tel langage de tel autre, ce qui fait la force ou la faiblesse d'outils
bureautiques comme le tableur, la messagerie, la documentation électronique, etc. ?
Pourtant la lecture de ce livre est nécessaire. Il apporte des
informations jusqu'ici inédites ou difficiles à trouver sur les origines des choix
techniques, du vocabulaire, ainsi que sur les mécanismes de la réussite dans ce marché
très concurrentiel. J'ai l'intention de le relire en prenant des notes pour mieux
maîtriser son contenu.
Il nous faudrait aussi un livre sur l'histoire du logiciel ; il devrait
certes faire référence au matériel (puisque les progrès du matériel sont
indispensables à l'éclosion des langages), mais aussi montrer ce que chaque langage a de
spécifique, ses apports et ses limites.
Michael Hiltzik, Dealers of Lightning : XEROX PARC and the
Dawn of the Computer Age, HarperBusiness, 1999
Une histoire étrange, racontée en détail ; moins bien écrit que
"Hackers", dont il constitue la suite chronologique, mais tout aussi
intéressant.
Ce livre décrit laventure des anciens
" hackers " qui se sont regroupés au centre de recherche créé par
Xerox dans la Silicon Valley : comment ils ont découvert quelques-unes des
techniques qui ont permis lépanouissement des micro-ordinateurs en réseau :
le protocole Ethernet pour réseaux locaux ; laffichage à lécran par le
moyen de fenêtres qui se superposent comme les feuilles de papier sur un bureau ;
les langages orientés objet, avec Smalltalk. On découvre des personnages fascinants,
comme Alan Kay ou Adele Goldberg.
On voit aussi la longue lutte de ces chercheurs contre
lentreprise qui payait leurs travaux, mais qui nen fit jamais rien.
Finalement, cest Steve Jobs qui rafle la mise : il se fait présenter les
recherches du PARC, lors de deux réunions mémorables en décembre 1979, et il les
utilisera pour concevoir le Macintosh qui sortira en 1984.
Tracy Kidder "The Soul of a New
Machine" Atlantic-Little, Brown 1981
Ce livre raconte les étapes de la conception du
mini-ordinateur Eclipse MV/8000 lancé par Data General en avril 1980.
L'ordinateur est la machine la plus complexe que
l'être humain ait conçue. Complexe non seulement dans ses couches physiques,
ses processeurs, ses mémoires, ses câblages, où s'organise la circulation des
électrons, se régulent les tensions électriques, se dessinent les bits et se
réalisent en binaire et à toute vitesse les opérations de consultation des
mémoires, calcul et écriture, mais aussi dans l'empilage des couches de
langage nécessaires pour commander l'automate : microcode, assembleur, système
d'exploitation, applications enfin.
Conception, réalisation, intégration, déboguage,
sont autant d'aventures qui s'articulent sous une contrainte de
délai toujours présente, toujours violée, toujours renouvelée. La mise au
point des langages et celle du matériel se renvoient la balle ; des
spécialités diverses, aux psychologies contrastées, s'entrecroisent. Assurer
la compatibilité du produit avec la gamme de l'entreprise, le respect des
interfaces, suppose des compromis fondés sur le sens du
marketing et du possible technique.
Les hommes qui font ce travail sont des ingénieurs
au sens complet du terme : ils réalisent de façon ingénieuse un travail
d'ingénierie. Ils se trouvent au front de taille de la recherche pratique, au
point où elle pose des problèmes intellectuels d'une extrême subtilité, où
elle rencontre les limites des connaissances que nous avons sur la nature. Ce
sont des rêveurs pratiques, des passionnés. L'argent n'est pas leur moteur :
ils sont à la recherche de leurs limites, ils se lancent des défis ; ils
ressemblent plutôt à des alpinistes. La limite qu'ils cherchent, ce n'est pas
tant une limite étroitement personnelle et individuelle, qu'une limite humaine
: ils veulent voir jusqu'où un être humain peut aller dans la clarté de la
conception, la maîtrise de la complexité, la concentration de la pensée, la
rapidité d'exécution, l'élégance de la démarche. Ce ne sont pas des
égoïstes, mais des explorateurs dont la curiosité nous concerne tous.
L'animateur de l'équipe, Tom West, manifeste
son respect pour ses collaborateurs en étant froid, distant ; "pas de
tapes dans le dos", dit-il : mais il leur délègue des responsabilités
qu'ils n'auraient jamais pu avoir ailleurs, et il conduit l'affaire vers le
succès en grand stratège, tout en assumant le poids des reproches et des
frustrations de l'équipe.
On trouve dans ce livre la meilleure description
intime de l'ordinateur, de la façon dont il est perçu, pensé, voulu par ceux
qui le conçoivent. Les pages consacrées au microcode, à l'assembleur, à la
conception des cartes, sont parmi les plus pédagogiques que j'aie pu
lire. L'articulation des couches dont l'ordinateur assure
la synthèse devient intuitive, palpable. Les quelques paragraphes consacrés à
l'intelligence artificielle sont parmi les plus... intelligents qui
soient.
L'ordinateur, c'est "la machine", la
machine essentielle, la machine par définition ; automate programmable apte à
tout faire, il constitue en effet le dispositif de commande de toute machine
potentielle, dispositif dont les autres organes de la machine seront ensuite
comme les bras, les mains, les capteurs sensoriels.
Les concepteurs de l'ordinateur en restent au
niveau général de "la machine" ; ils ne s'intéressent pas à ses
utilisations potentielles, c'est un autre problème qui doit être traité par
d'autres personnes à un autre moment que celui de la conception, mais ils
veillent à la doter des performances qui la rendront efficace pour la plus
grande diversité d'utilisations. Ils créent et balisent ainsi l'espace où
doit se conduire une recherche postérieure à la leur : celle sur les usages,
sur l'assistance qu'apporte "la machine" au travail humain organisé.
Le livre, qui s'arrête au moment où "la machine" quitte les mains
des ingénieurs pour passer dans celles des vendeurs (la rencontre entre les
deux populations est décrite avec finesse et humour), ne considère pas cette
autre phase de la recherche, celle qui se passe chez les utilisateurs, les
clients, les intégrateurs.
Steven Levy, Hackers, Delta Publishing, 1994
Livre d'histoire passionnant, qui se lit comme un roman, tout en
étant très sérieusement construit.
Il s'agit de la deuxième édition d'un ouvrage publié en 1984, et
enrichi d'un chapitre supplémentaire en 1994.
Les "hackers" dont parle Steven Levy ne sont pas les briseurs
de codes, les fabricants de virus, les fraudeurs que ce mot évoque aujourd'hui, mais les
pionniers de l'informatique personnelle. Le mot "hacker", en vieillissant, a
pris une connotation négative qu'il n'a pas du tout dans ce livre.
L'informatique était, dans les années 60, l'affaire des
professionnels style IBM, en costume, cravate noire et chemise blanche. Les utilisateurs
n'étaient pas autorisés à approcher la machine. Ils tapaient leurs programmes sur des
cartes perforées et passaient le paquet de cartes à travers un guichet ; puis, quelques
heures ou quelques jours après, ils trouvaient le listing dans leur casier - et le plus
souvent ce listing leur signalait une erreur dans le programme. Il fallait la corriger,
puis taper les nouvelles cartes, passer le nouveau paquet de cartes à travers le guichet,
et de nouveau attendre...
Les hackers (que d'autres ont appelé "hobbyists") voulaient
enjamber cette procédure. Ils revendiquaient le droit de comprendre comment la machine
fonctionne, d'y mettre les mains, d'y accéder, de travailler en temps réel, et de
modifier la façon dont on utilisait l'ordinateur. L'équipe la plus flamboyante a été
celle du MIT, puis par dissémination d'autres équipes de passionnés se sont créées.
Ils ont mis au point des langages, des méthodes, ils ont inventé l'intelligence
artificielle, etc.
Puis ils ont cherché à mettre l'ordinateur à la disposition de tout
le monde. D'abord par la dissémination de terminaux, puis par la mise au point du
micro-ordinateur. Levy raconte la naissance de l'Altair, machine dont la seule interface
avec l'utilisateur était constituée d'une rangée d'interrupteurs et d'une rangée de
lampes, et dans laquelle il fallait entrer le programme (langage machine codé en base
huit !) lors de chaque utilisation, au point que les hackers avaient rapidement le bout
des doigts calleux. Puis il raconte la naissance des Apple I et II.
Levy nous fait partager les rêves, les ambitions, de ces passionnés
qui travaillaient trente heures d'affilée, et sacrifiaient leur hygiène et leur vie
affective à l'exploration des possibilités offertes par l'ordinateur, au développement
des outils qui permettaient de les élargir. Ils avaient une morale, " the hackers ethic", reposant sur quelques points fondamentaux : libre accès à la machine,
liberté et gratuité des logiciels, coopération etc. L'émergence du commerce des
logiciels a mis un terme à cette époque. Toutefois la créativité des hackers avait
permis le démarrage d'une nouvelle économie.
Le livre de Levy date de 1984 (le complément apporté lors de la
deuxième édition en 1994 ne comporte qu'un chapitre de mise à jour), mais il mentionne
certaines des questions qui nous tracassent aujourd'hui. Si l'on a en tête un modèle en
couches de l'informatique, on voit en effet se déplacer la "couche critique",
celle qui se trouve sur le front de taille de la discipline. Il s'agissait dans les
années 60 de mettre au point les langages facilitant la diversification des utilisations
de l'ordinateur. La couche critique était celle du "software". Puis, dans les
années 70, il s'est agi de mettre l'ordinateur dans les mains de chacun en développant
un micro-ordinateur s'appuyant sur les microprocesseurs tout récents (la couche critique
était celle du "hardware"). L'Altair arrive sur le marché en janvier 1975 ; il
est offert en kit pour 397 $ (p. 190). Ensuite s'enchaînent les développements en
logiciel et en matériel qui conduisent au micro-ordinateur en réseau d'aujourd'hui, avec
ses interfaces graphiques, son équipement multimédia et l'Internet.
La couche critique maintenant est celle de l'utilisation, plus
précisément de l'utilisation collective, organisée, du PC en réseau dans les
entreprises et dans la société. L'utilisation individuelle pose des questions qui
relèvent de la psychologie ; celles que pose l'utilisation collective relèvent de la
sociologie et de la culture, ainsi que de l'organisation, et me semblent bien plus
compliquées et plus riches. D'ailleurs l'utilisation individuelle ne peut se définir
sans référence au contexte culturel, sociologique, organisationnel dans lequel
l'individu est inséré. Sociologie et psychologie constituent deux couches, différentes
mais solidaires, du même empilement.
Les héritiers des "hackers" des années 60 et 70, ce sont
les personnes qui règlent aujourd'hui les questions que posent la maîtrise du langage de
l'entreprise, l'organisation transverse, l'articulation du système d'information avec la
stratégie, la modélisation des processus. Ces questions sont aujourd'hui sur le front de
taille de l'informatique.
Richard E. Pattis, Karel the Robot, Wiley, 1995
Excellent petit livre pédagogique (et sympathique), qui présente
la programmation comme un jeu.A lire impérativement : si vous ne lisez qu'un livre dans
cette bibliographie, que ce soit celui-là.
C'est une introduction à l'art du programmeur. Elle permet de
comprendre comment peuvent coopérer la puissance de la machine et le cerveau du
programmeur (ou de l'utilisateur).
On part d'un jeu : il s'agit de commander un petit robot, appelé
affectueusement Karel, qui se déplace dans un monde simple. Le plan de ce monde est un
quadrillage, semblable aux rues d'une ville américaine ; Karel peut se déplacer dans ce
monde en avançant d'un carré et en tournant d'un quart de tour sur lui même (ce qui lui
permet de prendre des virages ou de faire des demi tours). Le chemin lui est parfois
barré par un mur, qu'il ne perçoit que lorsque il est juste devant. Il porte enfin un
sac contenant des balises qu'il peut déposer à certains carrefours.
Karel obéit, avec une précision et une bonne volonté infinies, aux
ordres qu'on lui donne. Quand on lui donne un ordre impossible (avancer dans un mur, poser
une balise alors que son sac est vide), il envoie un message et s'arrête. Bref : Karel
est infiniment travailleur et patient, jamais rebuté par une tâche répétitive, mais il
ne fait que ce qu'on lui ordonne, et ne sait prendre aucune décision.
Le programmeur de Karel dispose, lui, d'un langage de commande.
L'auteur nous invite donc à programmer Karel. Il s'agit d'abord d'accomplir des tâches
simples (parcourir une diagonale entre deux points, faire le tour d'un mur rectangulaire,
etc.). Puis on fait un programme un peu plus difficile : faire sortir Karel d'une
"pièce" rectangulaire entourée de murs percés d'une porte, quelle que soit la
forme de la pièce, l'emplacement de la porte et l'emplacement initial de Karel, etc. Pour
traiter tous les cas particuliers en un seul programme, il faut décomposer des tâches
complexes en tâches élémentaires : nous voici dans la programmation structurée, avec
les "subroutines" emboîtées, analogue à du Pascal.
En lisant ce livre on s'habitue à la coopération entre un programmeur
humain, avec sa créativité, et un robot stupide mais d'une patience inlassable.
L'intuition découvre le langage qu'il convient de parler à l'ordinateur si l'on veut
qu'il obéisse : elle apprend à la fois à concevoir un tel langage, et à l'utiliser.
On entrevoit enfin les possibilités ouvertes à l'"être humain
assisté par ordinateur", concept plus intéressant et plus puissant que ceux
d'intelligence artificielle, ou d'automatisation, qui ont tant coûté et tant déçu.
Michael Sipser, Introduction to the Theory of Computation, PWS, 1997
Attention : c'est très mathématique ! à ne lire que si vous
aimez cela. Ceci dit, c'est excellent.
La lecture de ce livre est une drôle d'expérience. Vous l'achetez
parce que vous voulez régler un vieux compte avec la théorie de l'informatique : la
machine de Turing, la théorie des langages, les algorithmes, la décidabilité, le fait
qu'il n'existe pas de programme qui sache vérifier les programmes, le cryptage à clé
publique, les ordres de grandeur qui distinguent le faisable (polynomial) de l'impossible
(exponentiel), etc. Vous feuilletez le livre en soupirant : définitions, lemmes et
théorèmes s'enchaînent, cela n'a pas l'air facile à lire. Mais comme vous êtes
courageux et désireux d'apprendre, un soir vous vous y mettez. Et vous y passez la nuit !
puis le livre ne vous quitte plus : vous le lisez dans le métro, dans les salles
d'attente, partout où vous avez un instant de tranquillité. Vous passez des soirées de
lecture délicieuse.
Sipser est un grand pédagogue. Sans renoncer à la rigueur, il conduit
le long d'un chemin facile, vérifiable ; en partant d'automates simples il fait
découvrir les langages, les grammaires, la machine de Turing, la décidabilité, la
récursion, la complexité dans le temps (durée des calculs) et dans l'espace (taille de
la mémoire nécessaire), etc. Il est vrai qu'il faut revenir souvent sur ses pas pour se
remémorer les résultats acquis, mais c'est bien le moindre des efforts que l'on puisse
consentir.
La grande astuce de Sipser, c'est d'écrire deux fois la même
démonstration : une fois en langage courant pour donner une idée générale (c'est ce
qu'il appelle "proof ideas") ; la deuxième fois en notation formelle. Lorsque
je lis un chapitre la première fois, je me contente des "proof ideas" pour
avoir une idée d'ensemble. Puis je lis les démonstrations en entier pour me familiariser
avec les notations.
Edmond Marc et Dominique Picard, L'école de Palo
Alto, Retz, 1984
Ce livre décrit une méthode thérapeutique dont on peut
s'inspirer dans l'entreprise. De façon délibérée, cette méthode tourne le dos à la
recherche des causes et explications pour se concentrer sur les comportements observables.
Procéder ainsi, ce n'est pas nier que les phénomènes psychologiques aient des causes ;
mais c'est dire que pour les modifier il est souvent préférable de débloquer les
habitudes et automatismes incorporés aux comportements : après quoi la personne
"voit les choses" autrement et change pour de bon.
Un adolescent reste, malgré les observations de ses parents,
désordonné et sale ; ils doivent faire son lit, ranger ses affaires, et ne supportent
plus d'être ses domestiques. Le thérapeute leur conseille de changer d'attitude : au
lieu de récriminer, ils s'agit de se mettre en position de faiblesse pour que l'autre
soit incité à prendre l'initiative. Il leur conseille ainsi de laisser tomber des
miettes de pain dans le lit de l'adolescent la prochaine fois qu'ils le feront. Lorsque
celui-ci protestera, ils s'excuseront d'un air confus, et diront qu'ils ont mangé un
sandwich en faisant le lit. Quelques jours après, l'adolescent juge plus expédient de
faire son lit lui-même, modeste victoire qui lui fait découvrir le plaisir de mettre de
l'ordre dans ses affaires.
Une assistante avait des rapports très tendus avec son
patron qui la trouvait trop autoritaire. Le thérapeute conseille : "la prochaine
fois que vous vous disputerez avec lui, demandez un entretien seul à seule, dites d'un
air gêné : "vous me rappelez mon père, c'est fou ce que vous m'attirez
sexuellement", et partez aussitôt". Dans les jours suivants les relations
s'améliorèrent du tout au tout : elle avait tellement peur de devoir dire cette phrase
qu'elle faisait tout pour éviter les disputes.
On est ici aux antipodes de la psychanalyse ; on ne cherche
pas à savoir pourquoi l'adolescent est désordonné, pourquoi l'assistante et le patron
ne s'entendent pas, mais à supprimer le phénomène en jouant sur ses symptômes. Les
techniques utilisées relèvent de la manipulation. Certains trouvent cela moralement
douteux et irrationnel : mais qu'importe, si en pratique il faut faire l'économie de la
raison et des habitudes "morales" pour résoudre le problème dans lequel les
gens se débattent ?
Il arrive souvent, dans une entreprise, que les personnes
soient coincées par une contradiction entre leurs habitudes et les exigences de leur
mission. Ainsi une personne formée dans une structure hiérarchique, qui a l'habitude de
transmettre des ordres vers le bas et des comptes rendus vers le haut, sera déconcertée
si on lui confie une tâche où elle doit faire preuve d'imagination créatrice ; un
informaticien habitué aux langages de programmation a du mal à tolérer le langage flou
et ambigu dont se contente l'être humain, et s'exprimera avec une précision pédante ;
un homme peu sûr de lui, sur la défensive, se donne un masque de dureté et d'autorité
qui facilitera sa carrière et le fera grimper au dessus de ses capacités, après quoi il
devra se défendre davantage encore etc.
Avec ces personnes, il est inutile de procéder par analyse
de la situation, explication des causes, réflexion rationnelle. Par contre, on peut
créer une situation telle qu'elles soient conduites à se comporter d'une façon
différente : alors elles découvrent des possibilités qui leur étaient auparavant
cachées ; ce sera pour elles le début de la libération, de l'exploration de facettes
inconnues de leur personne et des relations qu'elle entretient avec les autres.
Michel Volle, e-conomie, Economica, 2000
Lien vers la version électronique : la table des matières
est ici.
|