Journal nostalgie

Posté par  .
Étiquettes :
0
14
avr.
2004
Il se passe pas grand chose, tout le monde doit être en vacances [aucun journaux pendant polus de 12 heures!]. Il faut respecter le quota minimal de post/jour sur DLFP, donc je rajoute ma pierre.

Je sais que certains ont oublié l'histoire de l'informatique, donc je poste LE texte fondamental, que tout neu^^^informatitien digne de ce non devrait connaître. Perso je l'ai "découvert" il y a ~5 ans, mais il me guide tout les jours dans mon humble travail... (non je suis pas dans une secte, c'est du 2nd degré). Et comme ça, il restera la pour l'eternité... (attention, des plagiats / accaparations circulent (note pour plus tard: engueuler ce[s] connards)).

MANIFESTE DES VERITABLES PROGRAMMEURS

(anonyme, trouvé dans un réseau public aux USA) Il était une fois, au bon vieux temps - durant ce qu'on appelle "l'âge d'or de l'informatique" - il était facile de distinguer les HOMMES des JEUNOTS (la tradition les désigne aussi respectivement par les dénominations de VERITABLES et de VISAGES-PALES). A cette époque, les VERITABLES étaient ceux qui connaissaient la programmation des ordinateurs et les VISAGES-PALES étaient ceux qui ne la connaissaient pas. Les VERITABLES proféraient des mots comme : "DO 10 I=1,10" ou encore "ABEND" (et ils ne parlaient qu'en majuscules), pendant que le reste du monde disait des choses comme : "les ordinateurs sont trop compliqués pour moi" ou encore "les ordinateurs ne me disent rien, ils sont trop impersonnels". Des recherches récentes ont d' ailleurs montré que les VERITABLES n'ont besoin de rien dire à personne et, qu'en plus, ils n'avaient pas peur d'être impersonnels. Cependant, comme toujours, les choses évoluent. Nous sommes maintenant dans un monde où les braves mémés peuvent disposer d'un ordinateur dans leur four à micro-ondes, où les gosses de 12 ans peuvent ridiculiser un VERITABLE aux ASTEROIDS ou au PAC-MAN et où n'importe qui peut acheter, et même comprendre, son propre ordinateur personnel. Les VERITABLES risquent fortement l'extinction sous la concurrence des lycéens avec des MAKINTOCKS. Il est donc clairement urgent de mettre en évidence les différences entre un lycéen_joueur_de_pacman typique et un VERITABLE. En soulignant cette différence, nous montrons ainsi à ces gosses un modèle à suivre, une aspiration de perfection, une figure paternelle. Cela contribuera aussi à expliquer aux employeurs de VERITABLES pourquoi ce serait une erreur de remplacer ceux-ci par des lycéens_joueurs_de_pacman (quelles qu'en soient les économies de salaire réalisées).

LANGAGES

Le critère le plus simple pour repérer un VERITABLE dans la foule est son langage de programmation. Les VERITABLES utilisent le FORTRAN, les VISAGES-PALES utilisent le PASCAL. Niklaus Wirth, le concepteur de PASCAL, donnait un jour une conférence. On lui demanda comment il fallait prononcer son nom. Il répondit : "Vous pouvez soit faire un appel par nom en prononçant "Viirt" ou bien faire un appel par valeur en prononçant "Voort". Visiblement, on peut détecter par cette réponse que Niklaus Wirth est un VISAGE-PALE. Les véritables, eux, ne connaissent qu'un seul mécanisme de passage de paramètre, l'appel par adresse, qui est implémenté dans les compilateurs FORTRAN-G et H des IBM/370. Les VERITABLES n'ont pas besoin de tous ces concepts abstraits pour effectuer leur boulot, ils se contentent d'un compilo FORTRAN et d'un café. * Un VERITABLE fait du traitement de listes en FORTRAN. * Un VERITABLE fait des manipulations de chaînes de caractères en FORTRAN. * Un VERITABLE fait de la comptabilité (pour autant qu'il en fait) en FORTRAN. * Un VERITABLE fait des programmes d'Intelligence Artificielle en FORTRAN. S'il ne peut le faire en FORTRAN, il le fait en Assembleur. S'il ne peut le faire en assembleur c'est que ça ne vaut vraiment pas du tout la peine d'être programmé.

LA PROGRAMMATION STRUCTUREE

Les autorités académiques en informatiques sont tombées ces derniers temps sur la manie de la "programmation structurée". Elles prétendent que les programmes sont plus faciles à comprendre quand leurs auteurs pratiquent des techniques ou des langages spéciaux de programmation. Ces savants ne sont pas tous d'accord sur quels langages et quelles techniques il faut utiliser, et leurs exemples en général sont fait de manière à tenir sur une page de publication scientifique, visiblement insuffisant pour convaincre qui que ce soit. En sortant de l'école, je pensais être le meilleur programmeur au monde. Mon programme de Morpion était imbattable, je programmais en 5 langages différents et j'étais capable d'aligner un programme de 1000 lignes qui MARCHAIT du premier coup (oui!). Mon premier boulot dans le monde VERITABLE fut de lire et de comprendre un programme de 200 000 instructions FORTRAN, puis de diviser par deux son temps d'exécution. Tout VERITABLE vous dira que la "programmation structurée" ne vous est pas d'un grand secours pour résoudre ce genre de problème - il faut du TALENT. Voici quelques observations sur l'attitude des VERITABLES vis à vis de la "programmation structurée" : * Un VERITABLE ne craint pas d'utiliser les GOTOs, * Un VERITABLE peut écrire une boucle DO de cinq pages sans se mélanger les pinceaux, * Un VERITABLE préfère les IF arithmétiques, ça prend moins de place mémoire, * Un VERITABLE est capable d'écrire du code auto-modifiant si ça fait gagner 20 nanosecondes, * Un VERITABLE n'a pas besoin de commentaires, il préfère se fier au code, * Un VERITABLE n'a pas besoin de IF structuré, de REPEAT, de CASE...OF; tout ça peut se simuler en FORTRAN, au besoin en faisant des ASSIGN GOTO. Les structures de données reçoivent aussi beaucoup de publicité ces temps-ci. Les types de données abstrait, les structures, les pointeurs, les listes et les chaînes de caractères sont devenus populaires dans certains milieux. Wirth, le VISAGE-PALE susnommé a même écrit un bouquin prétendant que vous pouvez écrire des programmes en partant des structures de données au lieu de faire l'inverse. Ainsi que le sait tout VERITABLE, la seule structure de données réellement utile est le tableau. Les listes, les structures, les chaînes de caractères, les ensembles, tout ça ce sont des variétés de tableaux qui peuvent se programmer comme telles sans se compliquer la vie avec des distingos subtils. La pire des contraintes avec cette fantaisie des types de données est que vous êtes obligé de les déclarer, et vous savez bien qu'un VERITABLE langage de programmation doit reconnaître implicitement le type de données sur le premier des six caractères du nom de la variable.

LES SYSTEMES D'EXPLOITATION

Quel est le type de système d'exploitation qui est utilisé par un les VERITABLES? CP/M? Dieu merci non! Après tout CP/M est un système d'exploitation joujou. Même les petites mémés et les lycéens peuvent comprendre et utiliser CP/M. UNIX est bien sûr plus compliqué - un hacker typique sous UNIX n'arrive jamais à se souvenir du nom de la commande PRINT en cours de validité pour la semaine - mais, quand on y pense un peu, UNIX n'est qu'un jeu vidéo un peu mis en valeur. On ne travaille pas sérieusement sur un système UNIX, on se borne à envoyer des vannes au monde entier par UUCP sur un réseau, à ecrire des jeux d'aventure ou à rédiger des articles scientifiques pour publication. Non, un VERITABLE travaille sous OS/370. Un bon VERITABLE peut arriver à trouver dans son manuel JCL la signification de l'erreur IJK3051 qu'il vient d'avoir. Un VERITABLE fortiche peut écrire du JCL sans consulter ce manuel du tout et un VERITABLE carrément extra peut trouver des bugs enfouis dans un dump mémoire de 6 mégaoctets sans utiliser une calculatrice hexadécimale (anecdote véridique). OS est véritablement un système d'exploitation remarquable. Il est possible là-dessus de détruire des journées de travail avec un blanc mal placé, ce qui incite les équipes de programmeurs à une plus grande concentration mentale. La meilleure manière pour aborder le système OS est par une perfo de cartes. Certains prétendent qu'il existe un Time Sharing sur OS 370, mais une étude minutieuse a démontré le contraire.

LES OUTILS DE PROGRAMMATION

Quel outil un VERITABLE emploie-t-il? En théorie, il pourrait rentrer ses programmes directement par les clés du panneau frontal de son ordinateur. C'était effectivement le cas à l'occasion, du temps où les machines avaient encore cet accessoire. Il fut un temps où un VERITABLE connaissait typiquement par coeur son boot en hexa et le rentrait ainsi chaque fois qu'il lui arrivait de l'écraser avec son programme - c'était aussi le temps où la mémoire était véritable et ne s'en allait pas quand on coupait le jus : de nos jours les mémoires oublient ce qu'on leur demande de retenir et gardent des choses qu'elles feraient mieux d'écraser - la légende dit que Seymour Cray, le père du super Ordinateur Cray I et de la plupart des control data, a rentré aux clés le premier système d'exploitation du CDC-7600 quand celui-ci a été démarré pour la première fois. Inutile de préciser que Seymour Cray est un VERITABLE. Un de mes VERITABLES favoris était un ingénieur système de chez Texas Instruments. Un jour il reçut un appel en longue distance d'un utilisateur dont le système avait crashé au milieu d'une sauvegarde importante. Jim avait alors réparé les dommages au téléphone en faisant rentrer par l'utilisateur les instructions de disk I/O aux clés, en patchant les tables systèmes en hexa et se faisant relire les contenus des registres à l'écouteur. La morale de cette histoire est que, même si un VERITABLE utilise en général une perfo et une imprimante comme outils de génie logiciel, il peut s'en sortir en cas d'urgence avec juste un tableau frontal d'ordinateur et une ligne téléphonique. Dans certaines sociétés, "édition de texte" ne signifie plus de nos jours 10 ingénieurs faisant la queue devant une perfo en code 29. D'ailleurs mon lieu de travail actuel n'a plus aucune perfo. Dans une telle situation un VERITABLE doit se résigner à utiliser un éditeur de texte. La plupart des systèmes permettent le choix entre plusieurs éditeurs et il s'agit alors d'en choisir un qui soit compatible avec votre style de travail. Beaucoup de personnes croient que les meilleurs éditeurs de texte du monde proviennent des laboratoires Xerox à Palo-Alto, sur les systèmes Aldo ou Dorado. Malheureusement comment voulez-vous qu'un véritable utilise quelque chose au nom aussi ridicule que "Smalltalk", et encore moins manipuler une souris? Quelques un des concepts de ces éditeurs de Xerox se sont retrouvés dans des programmes aux noms plus raisonnables, comme EMACS ou VI. Le problème avec ces éditeurs est que le concept "vous obtenez ce que vous voyez" est, aux yeux d'un VERITABLE, aussi vicieux chez un éditeur de texte qu'il peut l'être chez une femme. En réalité, un véritable préfère du "Vous l'aviez voulu, tant pis pour vous", du compliqué, de l'énigmatique, du mystérieux, puissant et impitoyable, comme TECO pour tout dire. On a fait remarquer qu'une séquence de commandes TECO ressemble plus à un bruit de télétransmission qu'à du texte lisible. Un jeu bien connu sur TECO consiste à taper votre nom en tant que commande et voir ce que ça donne. N'importe quelle erreur de frappe dans TECO recèle une forte probabilité de destruction de votre programme ou, mieux encore, d'introduire des erreurs subtiles dans un sous programme qui fonctionnait auparavant. C'est ce qui explique pourquoi un VERITABLE rechigne à éditer un programme qui tourne presque. Il préfère patcher directement le binaire, à l'aide d'un merveilleux outil appelé SUPERZAP (ou son équivalent sur une machine non-IBM). Cela marche tellement bien que beaucoup de programmes sur IBM n'ont que peu de ressemblance avec le code FORTRAN d'origine. En réalité, dans de nombreux cas, on ne dispose plus du tout du source. Quand il s'agit de corriger un tel programme, aucun patron ne penserait à un autre recours qu'un VERITABLE. Un VISAGE-PALE structuré ne saurait même pas par quoi commencer. On appelle ça la "protection de l'emploi". Voici quelques outils de génie logiciel que n'emploient PAS les VERITABLES : * Les préprocesseurs FORTRAN comme RATFOR ou MORTRAN. C'est bon pour les VISAGES PALES, * Les aides au débuggage en langage source. Un VERITABLE travaille uniquement sur les dumps mémoire, * Les compilateurs avec des protections de débordement de tableau. Ils brident la créativité, empêchent les usages les plus intéressants de l'instruction EQUIVALENCE et rendent impossible la modification des instructions systèmes avec des indices négatifs. Et le pire de ces reproches est que ça ralentit l'exécution, * La gestion centralisée du code. Un VERITABLE garde toujours ses sources dans des bacs de cartes personnels fermés à clé.

LES VERITABLES AU TRAVAIL

Où travaille un VERITABLE? Quels genres de programmes requièrent l'attention de cet individu aussi talentueux? Vous n'en trouverez pas en train d'écrire un paie/compta en COBOL, ou encore faisant des tris d'adresses pour un club micro. Un VERITABLE ne s'attelle qu'à des tâches extra-ordinaires : * Un VERITABLE travaille au laboratoire national de LOS ALAMOS et écrit des simulations de bombes nucléaires sur CRAY I, * Un VERITABLE travaille au centre national de sécurité, pour décoder les messages des Russes, * Pour que la Nasa puisse envoyer nos gars sur la Lune et les en ramener avant les Russes, il a fallu des milliers de VERITABLES, * Les VERITABLES travaillent chez Boeing pour concevoir les missiles de croisière. Les VERITABLES les plus formidables travaillent au Jet Propulsion Laboratory en Californie. Beaucoup d'entre-eux connaissent par coeur le logiciel de pilotage des Pionner et des Voyager. En combinant des gros programmes FORTRAN au sol avec un petit programme en langage machine là-haut, ils sont capables de prodiges de navigation et d'improvisation, comme taper dans une fenêtre de dix kilomètres de large après six ans de navigation dans l'espace, réparant ou by-passant des senseurs, des radios et des batteries endommagés. Il paraîtrait qu'un VERITABLE a réussi à fourrer un programme de reconnaissance de formes de quelques centaines d'octets dans un coin de mémoire libre, ce qui a permis de découvrir une nouvelle lune de Jupiter. Comme vous le voyez la plupart des VERITABLES, travaillent pour le gouvernement et spécialement pour le département de la défense (DoD) et c'est très bien ainsi. Récemment cependant, un nuage noir a obscurci l'horizon des VERITABLES. Il semblerait que quelque VISAGE-PALE haut placé du DoD a décidé que tous les programmes de la défense devront être écrits dans un grand langage unifié appelé ADA. Pendant un temps il a semblé que ADA allait à l'encontre des préceptes de la programmation VERITABLE (un langage avec des structures, des types de données, des points-virgules, bref un langage qui étiolerait la créativité des VERITABLES). Heureusement, le langage qui fut finalement adopté par le DoD comporte suffisamment de possibilités intéressantes pour le rendre potable : il est d'une effroyable complexité, il contient des méthodes pour tripoter le système d'exploitation et réordonner la mémoire et Edsger Dijkstra ne l'aime pas (vous connaissez Dijkstra, c'est celui qui a écrit le livre : "GOTOs considérés comme nuisibles", une oeuvre remarquable en méthodologie et applaudie par tous les programmeurs PASCAL et les VISAGES-PALES). En tout état de cause, rassurons nous : un VERITABLE peut programmer en FORTRAN dans n'importe quel langage. Il semblerait cependant que certains VERITABLES peuvent condescendre à faire un compromis dans leurs principes et à oeuvrer sur des choses plus triviales que la destruction de la vie sur Terre, à condition que ce boulot puisse rapporter des sous. ATARI, par exemple, emploie plusieurs VERITABLES pour écrire ses jeux vidéos (pas pour y jouer, un VERITABLE connait toutes les astuces pour battre la machine à tous les coups, ce ne serait pas glorieux). Les gens chez Lucas Films sont aussi des VERITABLES, il faudrait être fou pour refuser les millions de dollars des fans de "l'Empire contre-attaque". En CAO, il n'y a pour le moment pas assez de VERITABLES; ils n'ont pas encore trouvé le filon et on y trouve en général des gens qui y sont uniquement pour faire du FORTRAN et éviter de faire du COBOL.

LES VERITABLES AU JEU

En général, un VERITABLE joue comme il travaille, avec des ordinateurs. Il trouve d'ailleurs incroyable que son boss puisse le payer pour faire quelque chose qu'il ferait de toute manière gratos (bien qu'il fasse attention de ne pas le dire trop fort). De temps en temps, il arrive que le VERITABLE sorte de son bureau pour respirer un bol d'air et prendre un verre de bière. Pour le reconnaître à ces moments voici quelques trucs : * Dans un pot, les VERITABLES sont ceux qui sont dans un coin en train de discuter des protections de systèmes d'exploitation et des moyens de les craquer, * Dans un match de foot, le VERITABLE est celui en train de comparer le jeu avec sa simulation sur listing, * Aux enterrements, le VERITABLE est celui qui dit : "Pauvre Tim, son tri tournait presque quand il a eu cette attaque", * Au supermarché le VERITABLE est celui qui insiste pour faire passer lui même les cannettes de bière devant le lecteur optique si la caissière l'a mal fait la première fois.

L'HABITAT NATUREL DU VERITABLE

Dans quel biotope se plait le mieux le VERITABLE? Ceci est une question importante pour les patrons de VERITABLES car, vu le coût d'un spécimen, il est préférable de leur donner un environnement tel qu'il puisse accomplir efficacement son travail. Un VERITABLE typique vit devant un terminal d'ordinateur. Autour de ce terminal, on peut trouver : * Les listings de tous les programmes sur lesquels le VERITABLE a eu à travailler, empilés par ordre chronologique sur tout bout de surface plane du bureau, * Environ une demi-douzaine de tasses de café froid. Occasionnellement, il peut y avoir des mégots flottant dans les tasses. Quelquefois aussi, les tasses contiennent des restes de jus d'orange, * A moins d'un spéciment très fort, il y aura des exemplaires des manuel du JCL-OS et des Principes de Base ouverts à une page particulièrement intéressante, * Scotché au mur, on trouvera bien sur un listing de calendrier Snoopy, * Jonchant le sol, des enveloppes de barres de Mars ou de Bounty, ou tout autre équivalent qu'on vend dans les distributeurs et pré-rancis pour résister à leur long séjour, * Caché dans le tiroir supérieur gauche du bureau, un paquet de cigarillos pour les grandes occasions, * Sous les cigarillos, un normographe à organigrammes laissé là par l'occupant précédent (un VERITABLE, lui, n'écrit que des programmes, pas de la doc, il laisse ça aux gens de la maintenance). Un VERITABLE est capable de travailler 30, 40 et même 50 heures d'une traite, sous pression intense. En fait, il préfère comme ça. Les temps de réponse lents ne le dérangent pas, il lui donnent la possibilité de récupérer un petit somme entre deux compils. Si le planning n'est pas très serré, le VERITABLE s'arrange en général pour rendre les choses plus palpitantes en passant les neufs premières semaines sur un point réduit, mais intéressant, du projet, puis en finissant le reste du projet la dernière semaine en quelques sessions marathons de 50 heures chacune. Non seulement ça contribue à impressionner diablement son patron, qui désespérait de voir le projet fini dans les temps, mais cela fournit aussi une excellente excuse pour ne pas faire la doc. En général on peut dire que : * Aucun VERITABLE ne travaille de 9 à 5 (à moins que ce ne soit l'autre part de la journée), * Un VERITABLE ne porte pas de cravate, * Un VERITABLE ne porte pas de chaussures à talons, * Un VERITABLE arrive au travail à temps pour le déjeuner, * Un VERITABLE ne connait pas, ou ne peut pas se souvenir du nom de sa femme, mais il peut réciter par coeur la table ASCII (ou EBCDIC), * Un VERITABLE ne sait pas cuisiner, les épiceries étant fermées à trois heures du matin. Il survit avec des barres de Mars et des tasses de café.

L'AVENIR DU VERITABLE

Que nous réserve l'avenir? C'est un sujet de préoccupation pour les VERITABLES que les nouvelles générations de programmeurs ne soient pas élevées avec la même conception de la vie que leurs aînés. Beaucoup de ces jeunes n'ont jamais vu un ordinateur avec un panneau frontal. On peut à peine trouver un nouveau diplômé qui sache calculer en hexa sans une calculette. Les diplômés de nos jours sont des pieds-tendres, protégés des réalités de la programmation par des debuggers symboliques, des éditeurs de texte qui comptent les parenthèses et des systèmes d'exploitation "conviviaux". Pire que tout, ces soi-disant "chercheurs" du logiciel récoltent des diplômes sans même avoir jamais appris le FORTRAN! Sommes nous destinés à devenir une industrie de programmeurs PASCAL ou de maniaques de UNIX? Heureusement, mon expérience vécue me dit que le futur reste radieux partout pour les VERITABLES. Ni OS-370 ni FORTRAN ne montrent de signes de faiblesse, malgré les tentatives des programmeurs PASCAL du monde entier. Même les ruses les plus subtiles comme l'introduction de la structuration de code dans le FORTRAN ont échoué. Bien sûr, quelques constructeurs ont bien sorti des compilos FORTRAN 77, mais tous offrent la possibilité de revenir au FORTRAN 66 moyennant une option de compil et permettant ainsi de compiler les boucles DO comme Dieu les a créé pour. Même l'avènement de UNIX ne peut pas être aussi mauvais pour les VERITABLES qu'on le disait avant. A l'heure où j'écris ceci, la dernière release de UNIX contient des potentialités dignes de n'importe quel VERITABLE : deux interfaces utilisateurs différentes et subtilement incompatibles, un driver TTY tortueux et compliqué, de la mémoire vituelle. Si vous laissez de côté le fait qu'il soit un langage structuré, même C peut se faire apprécier d'un véritable : après tout, il ne vérifie pas les types de variables, les noms ont seulement sept caractères (ou dix? ou huit?) et vous avez en plus les pointeurs - comme si on avait les avantages du FORTRAN et de l'Assembleur conjugués. Sans oublier toutes les applications créatives et interessantes qu'on peut faire avec le #DEFINE. Non, l'avenir n'est pas si mauvais. Et même, ces derniers temps, la presse populaire a mentionné que des brillantes promos de hackers quittent des temples comme le MIT ou Stanford pour essaimer dans le monde. L'esprit est de toute évidence en eux. Tant qu'existent encore des objectifs mal définis, des bugs bizarres et des plannings irréalistes, il y aura des VERITABLES prêts à _Rentrer_dans_le_Tas_ et à _Résoudre_le_Problème_, en _laissant_la_doc_pour_plus_tard.

Longue vie au FORTRAN !
  • # Re: nostalgie

    Posté par  . Évalué à 4.

    La nostalgie, c'était mieux avant.
    • [^] # Re: nostalgie

      Posté par  . Évalué à 3.

      ou après...

      mode revival on
      de mon temps, on pouvais aller en pose clope pour les compilations...
      maintenant, faut faire semblant d'aller lire de la doc...
      mode revival off
  • # Re: nostalgie

    Posté par  . Évalué à 0.

    Sincèrement, je n'ai pas eu le courage de tout lire. Désolé :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.