14 octobre 2011

Dennis MacAlistair Ritchie


J'ai commencé la programmation sur un IBM 5100 prêté par un parent d'élève à notre petit club d'informatique de lycée, en 1979... Le professeur de Maths qui nous encadrait bénévolement pendant la pause déjeuner nous avait initié à l'algorithmique sur un problème de réduction de fractions entières. La programmation s'effectuait en BASIC.

Parallèlement, je découvrais comme beaucoup de jeunes de cette époque les joies de la programmation en assembleur sur ma calculatrice, une TI57.

Puis, après avoir travaillé un mois l'été, j'avais réussi à m'acheter un vrai ordinateur, un TRS-80 modèle I muni de 16Ko de mémoire vive. L'année suivante, je travaillais encore un mois pour m'offrir l'extension mémoire 48Ko...

Je venais d'avoir mon bac, et je découvrais les joies de l'informatique personnelle et ses logiciels perfectionnés: Wordstar, VisiCalc, Moonbase Fallout...

Ma véritable initiation aux langages évolués viendra en école d'ingénieurs avec Pascal, Fortran, Lisp et Smalltalk.

Finalement, je ne découvrirai le langage C que pendant mon doctorat, parallèlement (si je puis dire) au langage Occam. Tous mes travaux de recherche se sont fait avec l'aide de ces deux langages.

Mais la maîtrise véritable des subtilités du langage C, et la découverte de son histoire, ne viendra que lorsque j'ai eu la charge de l'enseigner à mon tour en école d'ingénieurs. Utiliser un langage de programmation, c'est une chose, préparer un cours pour l'enseigner, puis affronter les questions des étudiants en TP, c'est une autre chose. J'ai passé cinq années très riches sur ce sujet, en me creusant la tête chaque année sur la meilleure manière de faire passer les concepts de pointeurs à des étudiants non informaticiens. J'ai pris les exemples les plus simples, les comparaisons les plus claires possibles, j'ai travaillé les sujets de TP pour qu'ils soient progressifs et didactiques. J'ai usé ma salive, mes cordes vocales, mon énergie pour que 100% de mon amphithéâtre maîtrise les concepts, et pas seulement les deux premières rangées, toujours attentives. J'ai menacé, tempêté, félicité, encouragé, noté, dénoté, soutenu, maintenu, poussé mes étudiants pour qu'ils restent concentrés, qu'ils perçoivent la magie de la programmation, la joie de la réussite à faire fonctionner un programme complexe.

La vie m'a ensuite écarté de ces joies et peines de l'enseignement. Je n'ai pas beaucoup pratiqué la programmation, en tout cas plus dans des conditions aussi stimulantes. J'ai à peine effleuré la programmation orientée objet. Un peu de php, un zeste de python, un doigt de html, xml, et autres joyeusetés.

Je suis resté bloqué sur l'époque du langage C.

C'est pourquoi j'ai aujourd'hui une pensée émue pour les proches de Dennis MacAlistair Ritchie qui nous a quitté ce 8 octobre 2011.

#include <stdio.h>
int main(int argc, char ** argv) {
printf("Goodbye World\n");
return (EXIT_SUCCESS);}


------------------------
Source photo: Wikipédia.

6 commentaires:

  1. Sans parler de ses contributions à Unix ...

    Un grand homme ... dont la mort sera beaucoup moins médiatisée et regrettée par le public, que celle de S. Jobs.
    Drole de monde.

    RépondreSupprimer
  2. Le lisp ? En 2011, je continue à l'utiliser. En effet AutoDESK (tm) s'est approprié ce système de programmation.

    Je fais du Lisp AutoCAD (pour production) depuis 1998. Pour dire que çà date!

    RépondreSupprimer
  3. posix ne proposera de faire un
    return (EXIT_SUCCESS);

    C'est un grand homme de l'ombre, ces contributions relèvent du génie, c'est un grand homme qu'on a perdu.

    RépondreSupprimer
  4. Manque un \n dans le printf pour que cela fasse propre...

    Mais bon... un grand qui s'en va dans un silence assourdissant, alors qu'un commercial sort avec tambours et trompettes....

    RépondreSupprimer
  5. Sans doute le seul langage informatique (avec, dans un autre domaine, Cobol dans l'informatique financière) qui permette de faire une carrière complète sans devoir en changer.

    Probable qu'avec des OS à l'architecture totalement repensée, construits au dessus d'hyperviseurs intégrant des machines à dérouler du bytecode... son influence se réduira à long terme à la mesure du potentiel d'abstraction matérielle permis par les microprocesseurs modernes.

    Mais l'hyperviseur en dessous restera sans doute codé en C, comme la majorité des systèmes d'exploitation d'aujourd'hui.

    Un grand bonhomme d'une riche époque de pionniers.

    RépondreSupprimer
  6. Je ne pratique plus le TRS-80 ni le C de KR, mais que de souvenirs émus, non partagés mais parallèles, à la lecture de votre blog...

    Sic transit gloria mundi.

    Très cordialement,

    Jean Lobry.

    P.-S. Je n'ai pas le coeur à vérifier dans la fameuse "bible", mais il me semble avoir la remembrance qu'il faut aussi inclure stdlib.h pour avoir accès à EXIT_SUCCESS. Vague souvenir insidieux de vieilles séances de TP de C, à vérifier.

    RépondreSupprimer

Lectrice, admiratrice, avocate, magistrate, programmeuse, dessinatrice, chère consœur, femmes de tous les pays, lecteur, j'ai toute confiance en vous pour prendre bien soin de vérifier que votre prose est compatible avec les normes orthographiques et grammaticales en vigueur. Et si vous pouviez éviter les propos insultants ou haineux, je vous en serais reconnaissant.
N'hésitez pas à respecter ces quelques règles qui peuvent même s'appliquer en dehors de ce blog.

Les commentaires sur ce blog sont modérés. Votre message apparaîtra sur le blog dès que le modérateur l'aura approuvé. Merci de votre patience.