lundi 13 juin 2016

Hommage à Dennis Ritchie même si tout le monde s’en fout !

Dennis Ritchie est mort entre le 12 octobre 2011 et je pensais que le secteur francophone de la technologie allait rendre un hommage à ce génie hors du commun, mais les articles que j’ai trouvé sont d’une médiocrité absolue. Même Framablog qui est censé promouvoir le logiciel libre et ses fondateurs n’a fait qu’un petit article qui serait digne d’un abruti de 6 ans. C’est à pleurer de voir qu’on s’est branlé pendant des semaines sur la mort de Steves Jobs alors que c’est Dennis Ritchie qui a inspiré la plupart de ces prétendus visionnaires de l’informatique.

J’ai entendu parler de Dennis Ritchie à l’âge de 15 ans quand je voulais en apprendre plus sur la programmation. Je suis allé à la bibliothèque pour voir ce qu’il y avait et la bibliothécaire m’a indiqué deux livres : Le langage C par Ritchie et Kernigan et le Java pour les nuls. Après avoir feuilleté le premier, je dis à la fille que cela me semblait trop compliqué et qu’il me fallait un livre pour débutants. Et là, elle me dit quelque chose que je n’ai jamais oublié : " Ce n’est pas grave si tu ne comprends pas, mais tu dois essayer de le lire, car les auteurs de ce livre sont les fondateurs de la programmation moderne. " C’est pourquoi, je rend hommage à ce grand homme avec une petite rétrospective de son parcours.

Dennis Ritchie est l’un des fondateurs du langage C et du système Unix. Ces deux éléments ont fournis la plupart des outils et des logiciels qui constituent l’informatique moderne de l’internet jusqu’au smartphone. Unix et le langage C ont joués un rôle central sur les succès et les échec du monde actuel de la technologie.

L’origine d’Unix se situe dans les années 1960, et à cette époque, on ignorait même le concept des ordinateurs personnels et des micro-processeurs. Ce qui se rapprochait le plus d’un ordinateur est une gigantesque machine composé de douzaines de terminaux avec des utilisateurs qui y travaillaient simultanément pour écrire des petits bouts de code.

Au milieu des années 1960, cette machine a subi plusieurs évolutions et un consortium composé de General Electric, de Bell Labs et du M.I.T (Massachusetts Institute Technology) ont lancés conjointement un projet appelé Multics (Multiplexed Information and Computing Service). Multics était le plus grand ordinateur de l’époque et il pouvait supporter des centaines d’utilisateurs en même temps et Bell Labs était responsable de son système d’exploitation.

Dennis Ritchie a rejoint la division de developpement de Bell Labs en 1967 grâce son père, Alistair Ritchie, qui y avait passé la majeure partie de sa carrière. Il a même écrit un livre qui a beaucoup influencé sur l’électronique, The Design of Switching Circuit qui a été publié en 1951. Dennis Ritchie est né à Bronxville, une zone suburbaine de New York et il a grandi dans le New Jersey. Il a étudié la physique et les mathématiques appliquées pour se tourner par la suite vers l’informatique à l’université d’Hardward.

Le système Multics était en crise dans le département de recherche de Bell Labs comme de nombreux grands projets sur les systèmes d’exploitation. Les gens se rendaient compte que c’était très difficile et couteux d’apprendre à écrire d’immenses programmes. En 1969, les difficultés étaient tellement insurmontables que Bell Labs décida d’abandonner le projet. Dennis Ritchie et Ken Thompson, un autre programmeur de Multics, étaient déçus de l’abandon du projet. L’ ordinateur Multics promettait de grandes choses, mais son système d’exploitation était trop difficile à créer. C’est pourquoi, ces deux programmeurs décidèrent de changer leur approche sur la création du système. Au lieu, ils allaient créer un système simple et minimaliste qu’ils appeleraient Unix. Par la suite, Dennis Ritchie expliqua ce nom était un jeu de mot et une référence ironique à Multics.

Pourtant, les gestionnaires de Dennis Ritchie et de Ken Thomspon n’étaient pas emballés par le projet et ils ont tentés d’utiliser une machine obsolète pour développer Unix. Cet ordinateur possédait juste 16 kilobytes de mémoire, mais c’était un bon signe, car cela forcerait à créer un système aussi simple que possible. Si on comparait Multics à l’architecture Baroque (gigantesque et complexe) alors Unix serait plutôt inspiré de l’architecture Bauhaus (un style pratique et minimaliste).

Unix a été développé en quelques mois en 1969 et un prototype était déjà fonctionnel en l’espace de 12 mois. Les collègues de Dennis Ritchie et de Ken Thompson étaient encore très sceptiques. Cependant, les deux programmeurs ont promis de développer un simple éditeur de texte ce qui força le département à acheter un ordinateur neuf pour y lancer Unix.

A ce point, ils décidèrent de réecrire entièrement le système Unix pour la nouvelle machine. La première version d’Unix a été écrite dans le langage de programmation natif de la machine, mais c’était difficile et très lent. Pour les prochaines versions d’Unix, Dennis Ritchie inventa un nouveau langage appelé C qui était un pont entre le code de la machine et des langages tels que Fortran ou Cobol.

Le langage C possède aussi une histoire intéressante puisque son ancêtre était le langage CPL (Combined Programming Langage) qui a été crée par les universités de Cambridge et de Londres en 1964. Et un des membres de son développement, Martin Richard, devient un visiteur régulier du M.I.T et il décida de créer une version simplifiée de ce langage qu’il appela BCPL (Basic CPL).

Quand Dennis Ritchie et Ken Thompson découvrirent le BCPL, ils décidèrent de l’utiliser pour développer Unix. Ils l’ont optimisés pour qu’il tienne sur 8 kilobytes et ils l’appelèrent le langage B. Par la suite, ce dernier subit encore de multiples évolutions et il devint finalement le langage C qu’on connait aujourd’hui. L’origine de ce nom peut avoir plusieurs significations selon Dennis Ritchie, soit c’est tiré de l’alphabet, soit c’est inspiré des lettres du langage BCPL. Le langage C a beaucoup facilité l’écriture de programmes et surtout il était portable. Ainsi, une application dans ce langage pouvait être lancée sur n’importe quelle machine. La nouvelle version d’Unix fut terminée en 1973 et ce système bénéficia de la portabilité du langage C.

A cette époque, AT&T, l’une des filiales de Bell Labs, possédait un monopole absolu sur l’industrie du téléphone et il leur était interdit de faire la même chose dans le domaine des ordinateurs. C’est pourquoi, ils permirent à Dennis Ritchie et Ken Thompson de distribuer gratuitement Unix aux universités et aux centres de recherche qui apprécièrent sa conception et sa légèreté.

Les universités commencèrent à former leurs étudiants au système Unix et au langage C, et progressivement, une culture de ce phénomène émergea dans l’industrie de l’informatique. En 1978, Dennis Ritchie et Brian Kernighan écrirent un livre appelé, The C Programming Langage, qui reste un best-seller de la programmation jusqu’à aujourd’hui. En dépit d’un titre sobre, ce livre parle également de l’approche de la programmation et il a influencé la plupart des pratiques et des techniques de développement du logiciel.

Dennis Ritchie et Ken Thompson ont été reconnus par leurs pairs en 1983 lorsqu’ils reçurent le prix Turing de l’Association of Computing Machinery qui est souvent considéré comme l’équivalent du prix nobel de l’informatique. Mais l’histoire d’Unix ne faisait que commencer. Ainsi, une division du département américain de la défense adopta Unix pour ses recherches sur le réseau qui contribua à créer Internet, car il est le système qui harmonise toutes les différentes couches de ce réseau.

Steve Jobs adorait Unix (vous entendez, bandes de fans sectaires d’Apple !). Quand on l’a viré d’Apple en 1985, il utilisa Unix comme base pour créer sa station de travail NeXT. Quand il retourna à Apple 10 ans plus tard, il ramena Unix avec lui et ce système devient alors le pilier central de tous les produits d’Apple qu’on connait aujourd’hui. (Fans d’Apple, relisez plusieurs fois ce parapraphe pour que vous compreniez l’origine du génie de votre Steve Jobs).

Unix est également au coeur du développement du logiciel libre. En 1980, AT&T commença a exiger des droits sur Unix à cause de la faiblesse de la législation dans ce domaine. Un petit étudiant finnois en informatique appelé Linus Torvald décida que le monde avait besoin d’une version libre d’Unix qui devient par la suite un certain Linux. Ce système a été conçu par des centaines de programmeurs qui ont été influencés par la culture d’Unix et du langage C. De nos jours, Linux équipe des milliards de machines allant des supercalculateurs jusqu’aux minuscules smartphones en passant par les systèmes des fusées spatiales.

Dennis Ritchie et Ken Thompson ont reçus de nombreuses récompenses tels que la Médaille nationale de la Science des mains du président Bill Clinton en 1998. La citation de ce président est que leur contribution est gigantesque sur l’avancée de la technologie et de la performance du secteur américain de la technologie. En 2011, les deux programmeurs ont reçus un nouveau prix au Japon pour leur colossale contribution à l’informatique (photo en début d’article). Dennis Ritchie a passée toute sa carrière au Bell Labs et il a pris sa retraite de la division de recherche en 2007 où il était le chef de projet.

Mesdames et messieurs, voilà qui était Dennis Ritchie !