Personnages clés de l'informatique

a marqué ce sujet comme résolu.

Bonjour, J'ai une idée d'article que je souhaite développer. Cet article parlerait des personnages clés de l'informatique pour expliquer (très brièvement) leurs vies mais aussi et surtout leurs travaux pour essayer de susciter un intérêt à en apprendre plus (sur leur histoire, leur technologie, etc.).

Petite liste (par catégorie) :

Informatique mécanique et historique :

  • Charles Babbage et Ada Lovelace : première programmeuse de l'histoire sur un appareil de Babbage
  • Blaise Pascal : Pascaline
  • Jacques de Vaucanson et Joseph Marie Jacquard : métiers à tisser automatiques/programmables
  • Herman Hollerith : carte perforée
  • Leonardo Torres Quevedo : créateur du premier calculateur électronique

Informatique théorique :

  • Alan Turing : machine de Turing, Enigma…
  • Alonzo Church : lambda calculs et autres propriétés fondamentales
  • Richard Hamming : codage et détection d'erreurs
  • Edsger Dijkstra : sémaphore, algorithmie, langage ALGOL
  • Donald Knuth : TeX, Metafont, the art of programming, un peu de mathématiques…
  • Leslie Lamport : systèmes réparties et LaTeX
  • RSA : les inventeurs de l'algorithme de chiffrement asymétrique RSA et quelques autres trucs liés comme le MD2 à MD5
  • Edgar Codd : modèle relationnel et OLAP

UNIX (et associés) :

  • Ken Thompson : UNIX, langage B, Plan 9, langage Go, UTF-8, table de finales aux échecs…
  • Dennis Ritchie : UNIX, Plan 9, langage C, K&R (livre et style de programmation)
  • Brian Kernighan : UNIX, Troff, langage awk, K&R
  • Rob Pike : UTF-8, langage Go et Limbo, Plan 9, Inferno, environnement de développement Sam
  • Andrew Tanenbaum : livres de références, Minix

Logiciel Libre (et associés) :

  • Richard Stallman : GPL, FSF, GNU : GCC, Emacs et GDB
  • Linus Torvalds : noyau Linux et Git

Programmation :

  • Guido van Rossum : Python
  • Larry Wall : Perl et patch
  • James Gosling : Java, Emacs et quelques trucs
  • Bjarne Stroustrup : C++
  • John McCarthy : IA, LISP
  • Niklaus Wirth : langages EULER, Algol W, MODULA et PASCAL ; loi de Wirth

Micro-informatique :

  • Bill Gates et Paul Allen : BASIC, Microsoft et DOS
  • Steve Wozniak : Apple, Apple I et II
  • Steve Jobs : Apple, Pixar et NeXT
  • Larry Ellison : Oracle

Internet/Web :

  • Douglas Engelbart : réseaux informatiques, hypertexte et la souris/GUI
  • Vint Cerf, Louis Pouzin et Bob Kahn : datagramme et TCP/IP
  • Ray Samuel Tomlinson : courrier électronique
  • Tim-Berners Lee : Web, HTTP et W3C
  • Marc Andreessen : navigateurs Mozaic et Netscape
  • Jimmy Wales : Wikipédia
  • Larry Page et Sergei Brin : moteur de recherche et Google

Discutables ?

  • (?) Gordon Earle Moore : cofondateur d'Intel et loi de Moore (trop élec ?)
  • (LL) Eric Raymond : OpenSource, Cathédrale et le Bazard, quelques contributions à des LL
  • (Internet/Web) Mark Zuckerberg : Facebook
  • (Théorique) auteurs du Dragon Book pour quelques algorithmes et la théorie de la compilation ou des langages
  • (TOUT) Fabrice Bellard : QEMU, TinyCC, FFmpeg, calcul de Pi, émulation par JS
  • (Historique) John von Neumann : architecture von Neumann, algorithme MinMax…

Comme vous pouvez le constater, la liste est longue et encore quelques noms mériteraient d'y paraître encore. J'ai essayé de ne pas inclure d’électronicien ou d'expert en télécom pour se centrer sur l'informatique pratique et théorique.

Néanmoins, je ne connais pas tous les personnages importants, j'ai pu en oublier (surtout en informatique théorique en fait). J'ai aussi quelques noms "discutables" car je ne sais pas si ces contributeurs sont suffisamment importants (ou une histoire assez riche) pour mériter d'y figurer. J'aimerais vos avis là dessus.

Je m'attellerais à cette écriture après quelques avis. :)

+6 -0

Salut,

Je n'ai pas d'avis sur le fait qu'il faudrait rajouter ou non des personnages, à part quelques grands noms, j'en connais pas vraiment et ils sont déjà présent dans ta liste.

Par-contre, je peux te dire, que si tu t’attelles à l'écriture de ces articles, je les lirai avec grand plaisir ! C'est toujours quelque chose qui m'a passionné, de savoir qui se cache derrière des technologies.

Donc voilà, tout ça pour dire que j'espère grandement que les avis que tu vas recevoir seront positif, et aussi que si tu les écrits, tu auras au-moins un lecteur assidu ! :)

En fait je ne connais pas vraiment la vie de Guido Van Rossum, c'est pour ça que je le mettais de côté (j'avais peur qu'à part le Python il n'ait rien fait de probant ce qui ne semble pas être le cas). Je vais l'inclure donc.

Peut-être peut-on rajouter Aaron Swartz ?

Je ne suis pas favorable à son inclusion. Sa mort a été très médiatisée, d'ailleurs je pense que sa mort a été trop médiatisée par rapport à son apport dans l'informatique réelle. S'il n'avait pas contribué, les chamboulements n'auraient pas été conséquents ou remarqués selon moi. Il a fait des contributions appréciables, surtout par rapport à son âge, mais ça me paraît trop mineur (comparer CC par rapport à la FSF ou RSS à TCP/IP ou encore Reddit à Google, bof). D'autant plus qu'après une rapide vision de ses contributions, il n'a jamais été l'initiateur des projets où il a contribué contrairement à tous ceux qui sont listés plus haut. Ces projets auraient pu arriver à leur terme sans lui.

+0 -0

Je comprends tout à fait tes arguments, et c'est vrai qu'il n'y aurait pas forcément beaucoup à dire sur A. Swartz concernant les inventions. Par contre je pense qu'un article sur la "préhistoire" de l'informatique (au XVIIIe), serait très intéressant : le métier à tisser Jacquard, la machine de Babbage, la Pascaline, Ada Lovelace… J'avais lu un bon article dans Tangente sur la vie d'Ada Lovelace, il faudrait que je le retrouve.

+0 -0

C'est vrai, honnêtement je n'y avais pas pensé. Je les ajoute à part, et là encore ce n'est pas ma spécialité (je connais les noms et quelques trucs sur eux mais je pense qu'on peut en dire plus quand même).

Merci.

+0 -0

L'informatique est un mot valise qui regroupe beaucoup de choses bien différentes -> développement software, pénétration des ordi dans les foyers, progrès hardware, réseaux sociaux, technologies utilisées par tous, …). Du coup, il va y avoir plein de gens très différents.

Pour les gens.

Et Ada Lovelace ? Quand même ! (et tous ses amis de l'époque) [Grillé par Matouche]
Et Muḥammad ibn Mūsā al-Khwārizmī ?

Côté OO (orienté développement software) :

  • Barbara Liskov (LSP)
  • Lucas Cardelli (taxinomie des polymorphismes)
  • Robert "Oncle Bob" Martin (plein de trucs sur l'OO)
  • Martin Fowler (refactoring)
  • Eric Gamma & le reste du gang of 4 (-> DP)
  • Bertran Meyer (Eiffel, et DbC)

(je vous passe les noms du C++)

Peut etre qu'une série d'article, présentant 2-3 personnes à chaque fois, serait un meilleur format qu'un seul article ?

Parce que là ton article s'annonce d'une taille très importante et ne va pas te permettre de vraiment développer leurs apports ni les expliquer. Une série d'article permettrait elle de te donner plus de marge, de rythmer la vie du site et te donnera plus de temps pour trouver d'autres noms. Tu aurais aussi moins de scrupules à ajouter des personnes qui ont des contributions plus mineurs puisque présentés avec d'autres personnes qui eux te permetront de remplir l'article.

J'approuve Kje, en fait quand j'avais réfléchis à l'idée je n'avais qu'une vingtaine de noms. ^^ Ça s'est bien trop allongé pour un seul article, je l'admets.

+0 -0

Pour Guido Van Rossum, j'ai un sentiment mitigé. D'une part je trouve intéressant d'intégrer le créateur d'un tel langage, d'un autre côté dans quel mesure on retiendrait lui et pas Rasmus Lerdorf, ou James Strachan et Guillaume Laforge (pour forcer délibérément le trait). Ça pourrait nous mener un peu trop loin ? Mais est-ce réellement un soucis ?

Pour Moore c'est compliqué parce qu'il va falloir éviter les quiproquos avec les différents mecs nommés Moore en informatique (y'en a un en théorie des graphes de mémoire ?) pourtant il "mérite" sa place dans la liste à mon sens.

Enfin, je suis à fond pour une série d'articles assez court présentant deux ou trois personnes maximum en fonction du sujet abordé (les processeurs, les premier pas de l'informatique, …). Très bonne idée d'articles en tout cas.

+0 -0

Pour Guido Van Rossum, j'ai un sentiment mitigé. D'une part je trouve intéressant d'intégrer le créateur d'un tel langage, d'un autre côté dans quel mesure on retiendrait lui et pas Rasmus Lerdorf, ou James Strachan et Guillaume Laforge (pour forcer délibérément le trait). Ça pourrait nous mener un peu trop loin ? Mais est-ce réellement un soucis ?

Je ne pense pas que ce soit un poblème. Il peut utiliser certaines thématique comme excuse, genre "les langages de scripts". Là il passera pas mal de temps sur Larry Wall, un peu moins sur Guido Van Rossum et Rasmus Lerdorf (leur travail est moins important, en quantité) et peut en conclusion cité le noms de quelques autres personnes ayant apportés des choses sur cette thématique en se contenant de les lister, nommer leur contribution et mettre un lien vers leur bibliographie wikipedia.

Rossum a aussi travailler sur l'OS Amaoba comme Tanembaum (ils ont publié ensemble, ce que j'ignorais avant ce matin), il y a donc moyen de parler dessus aussi.

+0 -0

Quelques noms qui ne sont pas encore listés: Alan Kay, Stephen A. Cook, Fred Brooks, Robin Milner, Peter Norvig, Simon Peyton Jones, Joshua Bloch, Douglas Crockford, et Guy Steele.

La plupart des récipiendaires du prix Turing seraient de bons candidats. Il pourrait être bien aussi de parler de certains hackers connus (hacker dans le sens plus "noble" du terme). Je pense par exemple à Jamie Zawinski, qui n'a peut-être pas contribué de manière très importante à l'histoire de l'informatique, mais qui a un parcours passionnant.

Alors je pense que Zawinski, Swartz et autres Bellard pourraient en effet être cités mais à part dans le rang "parcours sympa ou grande diversité d'interventions". Ça serait plus cohérent ainsi et ils auraient un article dédié.

Les noms que tu cites, récipiendaires du prix Turing, sont en effet connus et pour avoir ce prix ont fait un travail d'exception. Si je ne les aie pas listé c'est uniquement parce que je ne connais pas leurs travaux et parcours (mais vraiment rien). Donc pourquoi pas, mais j'aurais besoin d'aide pour écrire un topo sur ce type de personnes. :)

EDIT : ou alors on mentionne leurs noms en guise d'ouverture mais sans détails.

+0 -0

Super idée. Ce serait génial que l'article sur Babbage et Ada Lovelace soit publié pour le "Ada Lovelace Day" (le 14 octobre cette année, c'est une journée dédiée à la promotion des femmes dans les sciences, maths, ingénierie et informatique). D'autant plus qu'il y a pas mal de choses à dire sur la vie d'Ada : entre son père, célèbre poète, qui l'abandonne enfant et sa mère qui refuse, durant ses derniers jours, de lui administrer ses calmants afin qu'elle "expie ses péchés", il y a de quoi raconter.

Je vais commencer à me lancer dans la rédaction du premier (voire des deux premiers articles) portant sur UNIX pour la simple et bonne raison que je connais mieux ce secteur là . :p Sauf si ça pose problème à certains que chronologiquement ça ne tient pas.

+0 -0

Je n'arrive pas à passer l'article en bêta pour d'éventuelles relectures (est-ce que pour les tutos ?). Je propose un extrait concernant Ken Thompson ci-dessous.

Je vous remercie de lire et de donner un avis sur le style, l'exactitude des infos (si jamais) et aussi la précision (est-ce trop peu abordé, trop précis, trop technique ou pas assez…). Cela m'aidera à savoir comment rédiger les autres de la meilleure manière possible.

Merci d'avance.

EDIT : j'ajouterais bien entendu des images, des liens pour approfondir des notions ou lire des travaux plus exacts. Des extraits de langages de programmations seront aussi proposés mais tout ceci ne sert qu'à embellir l'article.

Cet article est le premier d'une longue série censée rendre hommage à des personnages qui ont façonné profondément l'histoire de l'informatique en tant que science et en tant que technique. Aujourd'hui, nous allons aborder la naissance d'un système d'exploitation de 1970, dont ses principes sont toujours d'actualité 40 ans plus tard. De plus, de part son influence, nous allons voir des personnalités qui se sont basées sur UNIX pour aller plus loin encore.

La naissance d'UNIX est particulièrement liée à l'histoire des Bell Labs, des laboratoires qui verront la naissance du transistor, du laser, d'UNIX, du langage C et C++ ou encore de la fibre optique.

Ken Thompson

Naissance d'UNIX

Kenneth Lane Thompson est né le 4 février 1943 aux États-Unis à la Nouvelle Orléans.

En 1966, il ressort de la célèbre université de Berkeley, en Californie, avec une maîtrise en électronique et science informatique. Peu après, il va rejoindre l'équipe de développement au Bell Labs du système d'exploitation Multics où il va rencontrer Dennis Ritchie.

Le système Multics hérite d'un système plus anciens CTSS, dont la principale caractéristique était d'être à temps partagé et non en traitement par lot. Plusieurs utilisateurs pouvaient utiliser la machine en même temps pour des tâches différentes. Le système d'invite de commande et de traitement de texte va être les précurseur du shell et de Troff au sein d'UNIX.

Mais en plus de cet héritage, Multics va inclure le support du terminal distant permettant à chacun d'exécuter des tâches depuis son terminal dans son bureau sur l'ordinateur central. Pour mener cela à bien, un système d'anneaux de sécurité va se mettre en place permettant aux applications de se lancer avec des droits plus ou moins restreints. Technique que l'on va retrouver dans l'architecture des processeurs modernes comme le x86. Le système de fichier hiérarchisée va servir de référence au rootfs d'UNIX.

Cependant, en 1969 le travail de Dennis Ritchie et de Ken Thompson s'arrêtera sur Multics, les Bell Labs se retirent du projet. Cela va laisser le champ libre à la création d'UNIX. Ken profita du temps libéré pour créer son nouveau système, the New Ken's System sur un PDP-7 et le tout écrit dans un langage d'assemblage. Son collègue Brian Kernighan suggéra de renommer le système en Unics car contrairement à Multics, il n'y avait qu'une seule méthode pour faire les choses. Pour des raisons obscures, sans doute commerciale, Unics deviendra UNIX.

Le problème de ce système est sa difficulté à être portée. Ken travaillait en parallèle sur un langage de programme nommé le B qui descend du BCPL. Ce langage est le prédécesseur du C et est nommé en hommage à sa femme nommée Bonnie. Cependant UNIX ne sera pas porté en B, en effet ce langage n'avait pas de types considérant comme pointeur ou entier suivant le contexte et la taille standard d'une variable dépendant du mot de l'architecture de l'ordinateur. UNIX a faillit être porté à ce moment là en TMG ou Fortran.

En 1969 et 1970, Ritchie travailla sur le langage C pour succéder au B. Après sa disponibilité en 1971, Ken s'attela à porter UNIX en C sur un PDP-11, cet ordinateur ouvrait la porte du traitement de texte avec le langage roff et ses descendants futurs. À partir de 1972, UNIX est enfin portable et sa diffusion pourra bientôt commencer. Ken restera jusqu'à la diffusion de la version 6 en 1975. Les versions 4, 5 et 6 avaient apporté notamment le pipe permettant de lier les programmes entre eux. Cette année là UNIX commença à quitter le Bell Labs.

Pendant son travail sur UNIX, il sera à l'origine des utilitaires grep et ed, l'éditeur de texte qui servira de base à la création de vi et Vim. En effet, à cette époque les informaticiens étaient souvent proches des mathématiques et Ken Thompson va exploiter des travaux récents dans le milieu. Dans les années 1940 et 1950, Michael Rabin et Dana Scott vont travailler sur la formalisation des expressions régulières. Ken Thompson va être le premier à exploiter cette découverte mathématique dans l'éditeur de texte qed sur CTSS avant de poursuivre ce travail sur UNIX avec ed et grep. Par la suite la plupart des logiciels de gestion du texte ou les langages de programmations vont reprendre ces concepts.

Ken Thompson n'a eu aucun regret sur la conception d'UNIX, quand on lui demandait ce qu'il aurait changé avec le recul dans UNIX, il répond avec humour "J'aurais orthographié creat avec un e". La fonction système creat() n'est pas correctement orthographié sans raison apparente, l'orthographe réelle rentrant dans les 6-8 caractères qui était une limite à cette époque.

Les jeux d'échecs

Après avoir quitté le développement d'UNIX, il va s'atteler à une autre passion, les échecs avec l'ordinateur Belle. Avec Joe Condon, il va modifier un PDP-11/23 pour créer un ordinateur capable de jouer aux échecs, de manière similaire au célèbre projet Deep Blue de IBM deux décennies plus tard. Entre 1978 et 1986, cet ordinateur gagnera de nombreux championnats dont celui des ordinateurs d'échecs en Amérique du Nord. L'ordinateur a été confisqué temporairement par les États-Unis lors d'une volonté de participer à un match soviétique en URSS. En pleine guerre froide, cela a été annulé pour éviter un transfert illégal de technologies à une puissance ennemie.

Pendant ces années là, il travaillera également sur les tables de finale aux échecs pour trouver les coups lorsqu'il reste 3 à 5 pièces qui permettent de gagner. Pour sa part, il se concentrera sur la manière d'obtenir la promotion des pions restants afin de renverser la situation du jeu en fin de partie (sans préciser si cela mènera effectivement à une victoire ou à une défaite). Cela est à mettre en relation avec son travail sur le moteur de base de données (non relationnelles) dbm en 1979 qui met l'accent sur la performance par le stockage de données via une clé primaire et des fonctions de hashages extensibles.

La création de Plan 9

Il ne s'arrêta pas là, à la fin des années 80, il va s'occuper de son dernier projet au sein des Bell Labs, le système d'exploitation Plan 9. Selon lui, les défauts d'UNIX étaient trop profonds pour nécessiter de simple correctifs, d'où ce changement de projet et d'architecture. Tout d'abord, depuis la naissance d'UNIX l'informatique a eu des évolutions importantes : interface graphique, le réseau mais aussi l’internationalisation du secteur et ces éléments ne sont pas inclus dans l'architecture du système ce qui la rend moins puissante.

Plan 9 va inclure dans le concept "tout est fichiers" de son prédécesseur le réseau et l'interface graphique. Le dialogue avec ces concepts se fera à travers le système de fichier virtuel /proc dont les sous-espace contient des fichiers où l'écriture dedans permet le dialogue effectif avec le réseau ou l'IHM. Ce répertoire /proc fera partie intégrante du système ce qui est plutôt novateur pour dialoguer avec les processus et le noyau. Le protocole 9P sera conçu pour limiter la quantité d'appels systèmes pour exploiter le réseau ou le dialogue entre processus ou encore les systèmes de fichiers distribués. L'union des répertoires fera partie intégrante du système pour permettre de fusionner des sous-espaces du système de fichiers au delà d'un simple lien symbolique avec la commande bind.

La dernière problématique de Plan 9 est l’internationalisation, à savoir que tout le système puisse interpréter les langues non-latines comme le chinois et qu'un système non chinois puisse interpréter les caractères chinois donc sans changer forcément d'encodage de caractères. Au cours d'un repas au restaurant avec Rob Pike, il vont mettre en place ce qui sera l'encodage UTF-8 au sein du format Unicode et qui permet effectivement avec un seul système d'encoder n'importe quel caractère existant, d'être compatible avec les anciennes normes comme l'ASCII mais aussi d'économiser de la place car les caractère latin ne seront encodés que sur un octet contre quatre pour un idéogramme chinois. Ce système de caractères encodés sur des longueurs variables rendra ce système plus complexe à réaliser. Aujourd'hui UTF-8 est presque partout, dans la plupart des systèmes d'exploitations, des logiciels ou des langages de programmations modernes comme sur ce site.

Le langage Go

Il prendra sa retraite en 2000 des Bells Labs, sera un conseiller pour Entrisphere avant de rejoindre Google en 2006. C'est là bas qu'il participera au dernier projet de sa vie, le langage de programmation Go avec encore et toujours Rob Pike qu'il a rejoint chez Google. Fort de son expérience passée, après avoir reconçu UNIX avec Plan 9 il va s'atteler à essayer de reconcevoir le langage C avec les dernières évolutions de l'informatique. Ce langage va notamment reprendre l'aspect de programmation concurrente nécessaire avec les ordinateurs à plusieurs cœurs, incorporer un ramasse miette pour la gestion de la mémoire, une simili gestion des exceptions et un typage bien plus fort pour être plus sûr.

Épilogue

Ken Thompson est comme nous avons pu le voir un programmeur d'exception qui a su participer à de nombreux projets d'envergure et dont la plupart ont été une grande source d'inspiration pour les logiciels actuels. C'est pour cela qu'il a été, comme avec ses collègues des Bell Labs, souvent récompensé. Il a reçu notamment le prix Turing, la National Medal of Technology et la médaille Richard Hamming souvent en compagnie de Dennis Ritchie.

+1 -0

Dans les années 1940 et 1950, Michael Rabin et Dana Scott vont travailler sur la formalisation des expressions régulières. Ken Thompson va être le premier à exploiter cette découverte mathématique dans l'éditeur de texte qed sur CTSS avant de poursuivre ce travail sur UNIX avec ed et grep.

Renault

Les travaux de Rabin et Scott portent davantage sur les automates finis. C'est Kleene (source) qui a introduit leur représentation sous forme d'expressions régulières. Je ne trouve pas de source pour le prouver, mais je parierais que Thompson s'est inspiré des travaux de Kleene (plus que de Rabin et Scott) pour ses expressions régulières.

C'est là bas qu'il participera au dernier projet de sa vie

Renault

La formulation laisse penser qu'il est mort.

Dans le reste du texte, l'utilisation au pluriel de Bell Labs m'agace, mais c'est peut-être juste par habitude; en anglais on l'utilise normalement au singulier (voir la page Wikipédia).

Sinon, pour le reste, bon travail. :)

Les travaux de Rabin et Scott portent davantage sur les automates finis. C'est Kleene (source) qui a introduit leur représentation sous forme d'expressions régulières. Je ne trouve pas de source pour le prouver, mais je parierais que Thompson s'est inspiré des travaux de Kleene (plus que de Rabin et Scott) pour ses expressions régulières.

Possible, je vais creuser la question.

La formulation laisse penser qu'il est mort.

C'est vrai, on m'a déjà reporté ça, je vais rendre ça moins ténébreux.

Merci pour ton encouragement.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte