In memoriam…

Message 1, par Elzen

§ Posté le 26/10/2011 à 0h 45m 26

Tristes nouvelles pour le monde informatique : ce mois d'Octobre 2011 a vu mourir deux de ceux dont les travaux ont été des plus importants. Deux excellents informaticiens qui, si leurs noms sont inconnus du grand public, ont fourni les avancées décisives ayant permi la réalisation de l'informatique telle qu'on la connais aujourd'hui. Deux personnes qui sont mortes sans un mot des médias à leur sujet, mais au sujet desquels ceux qui les connaissaient ne tarissent pas de commentaires élogieux. Ces hommes s'appelaient Dennis Ritchie et John McCarthy.


Un mot sur celui dont on a entendu parler, peut-être. Steve Jobs, co-fondateur(1) d'Apple, est mort lui aussi ce mois-ci. Lui n'est pas passé inaperçu : nombre de médias, au lendemain de sa mort, l'ont quasiment déifié. Pourtant, cet homme n'était pas informaticien, et je ne l'aurais même pas évoqué dans cet article si l'on n'avait pas longuement prétendu l'inverse.

Steve Jobs était un commercial. Un excellent commercial, je le reconnais volontiers, et un visionnaire en ce qui concerne le rapport du grand public à l'informatique. En rachetant par exemple le premier environnement graphique à Xerox (qui n'y voyait qu'un travail expérimental aux possibilités de succès limitées) pour en faire la promotion, il a probablement eu une très grande influence sur l'utilisation de l'informatique par l'individu lambda. Mais il n'a rien révolutionné dans le monde informatique lui-même.

Et son influence n'allait pas dans le bon sens, loin de là : sous sa direction, Apple, quoiqu'ayant participé à quelques projets libres(2), a beaucoup œuvré pour l'enfermement de l'utilisateur. Rien de révolutionnaire, hélas, mais une tendance générale qu'ils ont suivi et précédé.

Et puisque, pour une fois, Richard Stallman et Eric Raymond sont d'accord sur quelque chose (ça, c'est une révolution !), je ne vais pas les contredire : la mort d'un homme est toujours triste, et en tant que tel, il est parfaitement normal de regretter Steve Jobs, mais il est certain que le monde de l'informatique ne souffrira pas de sa perte.


Assez parlé de lui, et venons-en aux véritables sujets de cet article. Je n'évoquerai pas les hommes eux-mêmes. Je les connais, hélas, trop peu pour cela. Mais puisque leurs travaux ont eut tant d'importance, je tâcherai de vous présenter ceux-ci, et de vous faire mesurer l'étendue de ce que nous leurs devons à tous les deux.



Au début des années 1970, Kenneth Thompson(3) et Dennis Ritchie ont créé le système Unix. Ce nom n'évoque peut-être plus grand chose aujourd'hui aux gens qui ne sont pas des professionnels du monde informatique, mais durant une bonne partie des années 1970 et 1980, ce fut, directement ou par ses versions dérivées, le système le plus utilisé au monde – en fait, jusqu'à l'essor d'Apple et de Microsoft, qui proposaient des systèmes non-Unix visant le grand public.

J'ai parlé de version dérivées, car en effet, il y en a eu un certain nombre, dont certaines sont encore en excellente santé aujourd'hui. Les systèmes *BSD, par exemple, sont des descendants en droite ligne d'Unix (et l'un d'entre eux, OpenBSD, est considéré comme le système le plus sécurisé au monde). Il y a eu aussi des descendants moins directs. Le projet GNU, et le noyau Linux, réunis pour former les systèmes que nous connaissons, n'en sont pas des descendants au sens propre, mais en reprennent les concepts et les principes de fonctionnement. Ils sont « de type Unix ».

Plus récemment, Mac OS X, la nouvelle génération du système conçu par Apple, a été le résultat d'une réécriture complète. Si, jusqu'à la version 9, Mac OS n'avait pas grand chose à voir avec Unix, depuis cette réécriture, le système en reprend les principes de fonctionnements et est également devenu « de type Unix ».

En fait, même si certains systèmes, dont Windows, sont encore basés sur un principe de fonctionnement très différent, tous respectent au moins une partie de la norme POSIX, qui est une norme de compatibilité issue du monde Unix. Internet a été créé sous Unix, et les systèmes qui en sont dérivés sont encore largement majoritaires dans le monde des serveurs. Le langage C, sur lequel je reviendrai dans quelques instants, a été initialement créé pour Unix.



L'une des grandes forces du système Unix était, et est toujours, son aspect à la fois multi-utilisateurs et multi-tâches. Cela signifie que plusieurs utilisateurs peuvent se connecter simultanément sur la même machine, ayant chacun un compte distinct, et lancer leurs applications indépendamment l'un de l'autre, plusieurs applications pouvant sans problème fonctionner simultanément.

Or, pour qu'un tel mode de fonctionnement soit possible et aussi fonctionnel, il était nécessaire de mettre préalablement au point la technique du temps partagé, permettant de répartir l'activité du processeur entre les différentes applications en train de tourner. Cette technique, c'est John McCarthy et ses collaborateurs (lui dirigeait l'équipe) qui l'ont mise au point dès la fin des années 1950.

Si Dennis Ritchie, en participant à la création d'Unix, a largement contribué à faire de l'informatique ce qu'il est aujourd'hui, c'est en partie grâce aux travaux de John McCarthy, et celui-ci, quoique n'ayant pas directement contribué à ce système, a permit à ces changements de se réaliser.



John McCarthy fut également l'un des plus grands pionniers de la recherche sur l'intelligence artificielle, que je ne pense pas avoir besoin de vous présenter. Pour cela, et grâce à ses travaux sur la logique formelle, il inventa en 1958 un langage de programmation baptisé Lisp, que certains (version française ici) présentent humoristiquement comme « le langage dans lequel Dieu a créé l'Univers ».

Le langage Lisp est l'un des plus anciens encore couramment utilisés aujourd'hui. D'après ce site (assez connus concernant la popularité des différents langages mais dont la représentativité n'est pas forcément optimale, comme le signale grim7reaper.), il est encore dans le « Top 15 » des langages les plus utilisés au monde (en y incluant, peut-être ses différents « dialectes », car, comme Unix, il a été plusieurs fois dérivé)

Quoiqu'il existe des langages fonctionnels plus récents, comme le Haskell, le langage Lisp reste une grande référence dans le domaine de la programmation fonctionnelle. Il serait peut-être quelque peu complexe et hors sujet de se lancer dans des explications détaillées de ce qu'est exactement la programmation fonctionnelle, mais sachez simplement qu'il s'agit de l'une des grandes familles(4) de programmation, basée sur le concept de fonction en mathématiques.

Emacs, l'un des plus célèbres(5) éditeurs de texte, développé par Richard Stallman et les contributeurs au projet GNU, et ayant servi à coder un certain nombre d'éléments de ce projet, est probablement l'exemple le plus cité d'application développée en Lisp ; mais on peut également mentionner Sawfish, un excellent gestionnaire de fenêtre qui a été pendant un moment utilisé par défaut dans l'environnement GNOME, ainsi que pas mal d'autres.



Dennis Ritchie, lui aussi, fut le père d'un langage de programmation. Et pas des moindres, puisqu'il s'agit du langage C.

Comme son nom l'indique plus ou moins, il est en partie hérité du langage B mis au point par Ken Thompson, son collaborateur. Dennis Ritchie a repris le langage B et l'a développé et fait évoluer jusqu'à obtenir, en 1972, ce langage, qui est encore de nos jours l'un des deux langages les plus utilisés au monde ; l'autre avec qui il est en concurrence étant le Java, qui est l'un de ses « descendants ».

En effet, de nombreux langages plus récent (Java(6), mais aussi C++, C#, Perl, PHP et beaucoup d'autres) ont reprit directement ou indirectement tout ou partie des concepts et modes de fonctionnements introduits par le C, et si l'on voulait réellement établir toute l'importance cruciale de ce langage dans le monde de l'informatique, il faudrait également prendre en compte tout ce qui a été fait avec ces autres langages.

Mais restons au C lui-même : Initialement développé pour (et aux côté d')Unix, il a ensuite été porté bien au delà. Si le noyau Linux et de nombreux logiciels du projet GNU sont écrits en langage C, le noyau du système d'exploitation développé par Microsoft, qui pourtant n'est pas « Unix », l'est également.

Le C est en effet un langage d'assez bas niveau, c'est-à-dire relativement proche du langage machine et donc capable d'effectuer un contrôle avancé(7) de ce que fait réellement le programme, tout en étant humainement très compréhensible (bon, il faut s'accrocher un peu et avoir certaines connaissances en programmation quand même, évidemment). Sa portabilité et l'existence de normes et de standards permettent de réaliser des logiciels puissants et qui ne sont pas limités à un système en particulier.

Parmi les logiciels célèbres développés en C pur, on peut citer notamment une bonne partie des environnements graphiques GNOME et Xfce, et, parmi les logiciels qui leur sont associés, le logiciel de traitement d'image The GIMP. Un certain nombre d'autres logiciels utilisent conjointement C et C++, comme par exemple le lecteur média VLC, le jeu vidéo Battle for Wesnoth, Cairo-Dock, le logiciel de dessin vectoriel Inkscape ou celui de modélisation 3D Blender. Entre autres. Beaucoup d'autres.



Ces quelques mots, je l'espère, vous ont donné un aperçu de l'importance des travaux réalisés par ces deux hommes. S'ils n'ont pas créé le monde à eux tout seul, ils ont au moins conçu les outils qui ont permis de le créer. S'ils n'avaient été là, l'informatique aujourd'hui aurait un tout autre visage.


Message 2, par kamui57

§ Posté le 26/10/2011 à 21h 59m 42

Oh des données sensibles :D

pour le contenu jle trouve bien.


Juste si tu pouvais mettre les boutons prévisualiser et répondre plus haut... et le bouton "répondre" en bas à droite, si jle cherche pas, jle remarque pas et je pense pas à répondre ici :P

Message 3, par Elzen

§ Posté le 26/10/2011 à 22h 08m 35

Bah le bouton « répondre », j'vois pas où il serait le mieux : en théorie, quand t'as fini de lire l'article, tes yeux arrivent à peu près à son niveau. Donc j'écoute tes propositions si tu en as (p't'être plus dans un sujet plus adapté, par contre).


Pour les boutons « prévisualiser » et « envoyer », j'vais voir si je peux améliorer la page non-scriptée, mais déjà, un truc qui facilite bien la vie, c'est d'aller sur la page d'accueil et de cocher la case pour demander des onglets 😉 (mais comme c'est un truc qui nécessite du JavaScript pour fonctionner correctement, je n'le fais pas par défaut)


Merci, en tout cas ^^

Message 4, par grim7reaper

§ Posté le 27/10/2011 à 10h 49m 25

Sympa comme article.

À la limite, pour dmr (Dennis MacAlistair Ritchie) tu aurais pu mentionner ses autres travaux comme Inferno, Limbo ou Plan9 (assez connu celui-là, repris en parti dans wmii).

(Suite au décès inopiné de mon précédent serveur, je profite de mettre en place une nouvelle machine pour essayer de refaire un outil de blog digne de ce nom. J'en profiterai d'ailleurs aussi pour repasser un peu sur certains articles, qui commencent à être particulièrement datés. En attendant, le système de commentaires de ce blog n'est plus fonctionnel, et a donc été désactivé. Désolé ! Vous pouvez néanmoins me contacter si besoin par mail (« mon login at ma machine, comme les gens normaux »), ou d'ailleurs par n'importe quel autre moyen. En espérant remettre les choses en place assez vite, tout plein de datalove sur vous !)