• AgoraVox sur Twitter
  • RSS
  • Agoravox TV
  • Agoravox Mobile

Accueil du site > Tribune Libre > Quand la technologie était artisanale...

Quand la technologie était artisanale...

Je ne suis pas, bien sûr, de la génération des vrais pionniers de l'histoire de l'informatique. Elle fut marquée par une concentration, progressive dans le temps, des évolutions de la technologie des machines, prenant ses racines dans la nuit des temps. L'histoire avec un H est longue ; elle ne peut être que bien générale. Ce petit texte à la marge et à la première personne, pour témoigner d'un temps pourtant très particulier que certains ont pu vivre. D'un début et d'une fin.

Il faut resituer le contexte pour bien comprendre. Je parle d'un temps où il n'y avait pas d'intégration de la technologie dans les usages quotidiens. Tout au plus une télévision et une machine à laver. D'un temps où la notion de service n'était pas omniprésente. D'un temps où on pouvait donc trouver une machine, muette, sans qu'on puisse dire à quoi elle pouvait bien servir.

Et je l'ai donc trouvée là, un matin de noël, posée entre un magnétophone à cassettes et un poste de télé noir et blanc.

Je l'ai allumée. Écran blanc sur lequel on pouvait distinguer quelques agitations électromagnétiques, avant que ne s'affiche, quelques secondes plus tard, un petit carré noir en bas à gauche de l'écran.

Rien de plus. La machine était là. Mon père m'a dit qu'on pouvait lui parler. Je parlais aux gosses de mon âge, à mon chien, et à mon chat aussi. Mais parler à une machine...

J'ai immédiatement trouvée l'expérience extraordinaire. Elle ne disait rien. Elle attendait. Personne ne savait. Pas une pub, pas un mot dans les cours d'école. Alors je la regardais en silence, en me posant la seule question qu'on peut se poser dans un cas aussi inédit, surtout quand on a 10 ans : qui y a t-il derrière à attendre ?

Bien sûr j'ai appris à lui parler. Un langage simple qu'il fallait connaître d'abord, pour que le résultat soit là. Infaillible. Constant. Par nuit, vent, hiver. Mon premier programme fut de lui faire deviner mon âge. Qui se serait aussi méticuleusement intéressé à mon âge ? J'ai compris que je pouvais jouer avec elle. Qu'elle était là pour ça.

 

 

Le langage sous le voile

Le temps passant je me rendais compte qu'il y avait quelque chose qui n'allait pas. Les instructions, je savais lui donner. Elle les comprenait. Pourtant je ne lui disais pas comment les comprendre. Elle le faisait toute seule. Ah.

Ce n'est pas l'école qui m'a fait me diriger (c'est aussi une autre histoire) vers le rayon livres des boutiques avec autant de faim. Rosae rosarum. C'est précisément le besoin de combler l'ignorance d'un phénomène que j'avais sous les yeux. Qu'on se le dise de la manière la plus claire : le désir d'apprendre commence aussi par la rareté de l'information.

Et c'est bien un livre qui m'a appris qu'il existait un langage sous le voile : un langage machine. Que jusqu'alors je n'avais utilisé qu'un intermédiaire, basique (c'est le mot ^^). Le langage direct n'était pas adapté à une utilisation humaine. Il fallait, pour parler à la machine, contourner l'interface qu'elle proposait à nous autres, humains. Plier le système pour le détourner et entrer au cœur des choses.

Un hack historique du ZX81 permettant d'utiliser le langage machine par détournement de l'interface, 1982. Par analogie et pour les plus anciens, on peut comparer cela à la transformation de l'interface en carte perforée représentant en ASCII le code machine inséré.

 

 

La limite et la liberté

Les ressources de ces premiers ordinateurs étaient pauvres. Et pourtant c'était une mine d'or. Je parle d'un temps où les PC n'existaient pas encore. Les machines de l'époque étaient d'une ouverture exceptionnelle. La puissance ne pouvait être le facteur fonctionnel. Alors les ingénieurs avaient misé sur autre chose. Et j'apprenais leur langage.

Au fil des soirs et en entrant plus profondément dans le système, je découvrais l'écriture. L'art de parler à une machine. Ce langage était écrit dans une mémoire figée, pour que la machine puisse redémarrer à l'identique après une extinction. Les ingénieurs avaient écrit là quelque chose. Quelque chose qui tournait au fond de l'attente.

La machine, pourtant très limitée, était un livre écrit avec une intelligence exceptionnelle. A 14 ans, vous n'en croisez jamais. Ce fut un éblouissement.

Les limites devaient pouvoir être contournées. Certainement parce que la faible puissance calculatoire contraignait à une meilleure inventivité. Mais aussi parce que la technologie n'était pas encore devenue un produit de consommation à obsolescence programmée. Les ingénieurs n'avaient que faire des commerciaux. A l'université, on faisait de la recherche, on ne vendait pas des cravates.

A force de temps, vous pouviez vous insérer dans le système, le détourner à votre guise. Rien à voir avec les "fonctionnalités" prévues des systèmes actuels (qui ne sont que le reflet du nième cahier des charges pris dans une méthodologie de production). Le système n'était pas là pour vous rendre service. Il y avait bien sûr un service minimal, pour vous dépatouiller, vous souhaiter discrètement bienvenu, mais l'essentiel, si vous vouliez comprendre, vous était donné autrement. C'était un édifice sans copyright. Avec patience, l'architecture devenait lisible. Et une fois lue, vous étiez comme un maçon libre de faire couler une rivière dans le salon alors qu'il n'y avait pas d'eau. Une machine n'était pas un système de vente de services, mais un moyen - et ceci de fond en comble.

Bien sûr tout devait se faire bas niveau, comme on dit. Parler la langue du 0 et 1 était nécessaire. La machine par exemple ne savait pas faire des multiplications (encore moins des divisions), mais quand on avait remarqué qu'en décalant d'un bit vers la gauche une valeur numérique on la multipliait en fait par deux (et on la divisait dans l'autre sens), on commençait à entrevoir quelques petits moyens de faire sans, avec un temps de calcul qui ridiculisait n'importe quelle méthode apprise sur les bancs des écoles.

Et de faire quoi, sans ? On avait 1 kilo-octets de mémoire. Près de cinq fois moins d'espace que ce texte n'en prend, sous sa forme la plus brute, jusqu'à ce mot ci.

Aller plus loin. Précisément parce que nous n'avions que très peu de choses sous la main. Cet ordinateur qui fut le mien vit la naissance d'un jeu d'échec, qui consommait plus de 100 fois moins de mémoire qu'il en faut pour stocker une recette de cuisine dans un bouquin à la mode. Alors qu'il existe 20 puissance 116 parties possibles (2 avec 116 zéros derrière). Comment ?

 

 

Un bug, youpi !

Le plein accès à la machine, sans police de violation, était un vrai déclencheur. La simplicité des architectures nous permettait, en plus du langage machine, central, de s'intéresser aux composants électroniques qui entouraient le cœur.

Ceux-ci sortaient des usines sans être destinés à un type de machine. Ils n'étaient donc pas figés. Il suffisait de reprogrammer l'un deux pour essayer de comprendre son fonctionnement.

Ils entraient alors parfois dans des modes non documentés (nous n'avions au mieux que les specs techniques). Ou buggués. En tâtonnant, en contrôlant la déviance, il devenait parfois possible de réaliser des choses qui n'étaient pas imaginables par les constructeurs eux-mêmes. Une autre forme de pensée, aucun doute.

Je me souviens par exemple d'une machine qui était vendue avec 3 modes d'affichage. Le premier était en monochrome (deux couleurs possibles seulement), en contrepartie du fait qu'il proposait la meilleure définition. En se synchronisant de manière fine, on pouvait savoir où était le rayon électromagnétique chargé d'allumer à toute vitesse les pixels un à un sur l'écran. Il suffisait alors, une fois synchronisé avec la position, d'envoyer un ordre au composant spécifique au moment voulu, lui faisant croire que tout l'écran était rose, pour lui dire, quelques nanosecondes plus tard, qu'en fait non, il s'était trompé, l'écran était bleu. Le temps qu'il réagisse, on avait déjà gagné deux couleurs. Il n'y avait plus qu'à recommencer pendant les quelques millisecondes du balayage de l'écran, en attendant les bonnes nanosecondes pour le placement. Et il disait quoi, le composant ? "Ok, roule ma poule, c'est fun ici".

Et ça donnait ça :


Synchronisation de la commande et du balayage ("raster") dans un mode à deux couleurs seulement, réalisée sur Amstrad CPC 464, par Longshot/Logon System, 1989.

 

 

"Do It Otherwise" : le Do It Yourself du démuni

Bien des détournements ont été exploités sur diverses machines. Pour vous donner un exemple : on faisait chanter un Amstrad, lui qui ne disposait que d'un générateur de bruit et d'ondes sonores carrées ou sinusoïdales simples. En gros des "tsssshhh" pour la batterie et des "biiip" à fréquences programmables.

Comment transformer un tel truc en voix humaine ? Et bien déjà en se disant qu'avec ça et la puissance de calcul à dispo, on n'y arriverait pas.

La logique devait donc être autre. Le truc, découvert en s'amusant un soir avec le composant à bip ; en envoyant une simple commande d'ouverture de volume sur ce composant, la membrane du haut parleur se mettait à vibrer légèrement. C'était un souffle constant : en le répétant rapidement, il devenait aigüe. Plus lentement, il devenait grave. Et voilà. Inutile de perdre du temps de calcul pour générer des ondes : on avait une membrane qui en créait, et des naturelles, avec un simple bit.

J'ai alors passé une cassette audio dans mon magnétophone. Renaud Séchan. Puis j'ai écrit un petit programme qui récupère les données du magnéto au fil de la lecture de la cassette. Des 0 et des 1.

J'ai ensuite écrit un autre programme qui lit ces données, précieusement stockées en mémoire, et pour un 1, envoit le signal d'ouverture du volume, et pour 0, l'éteint. Le mouvement de la membrane suivait donc les fréquences des données... et mon ordinateur, pour lequel il était impossible d'imiter un bruit de casserole, chantait du Renaud ! De quoi être une petite star de l'informatique dans ma cours d'école, en plus de vendre les premiers jeux que je crackais sous pseudo pour un paquet de goldo (qu'on fumait à la campagne dans la cabane faite l'été d'avant, sous le soleil couchant, heureux et déjà nostlagique en pensant à l'école du lendemain).

J'avais lu une partie du programme de la licence informatique à 16 ans. C'était simple après tout ça mais pourtant j'étais un novice. Car je voyais, aux rencontres et aux productions qui circulaient, des gamins de 15 ans coder des choses qui pour certaines sont restées pour moi des énigmes. Je jure que les conditions matérielles et logicielles que je décris formaient une astuce frôlant le génie. Et je sais à quoi comparer de nos jours.

J'insiste, nous n'avions rien. Internet n'existait pas. Nous devions tout découvrir par nous-mêmes, aidés en tout et pour tout d'un ou deux livres techniques et de magasines qui divulguaient de temps en autre quelques secrets que les "swappers" et les "crackers" faisaient circuler des mois - ou des années - avant, dans le réseau confiné et pourtant si concrètement européen pour les ados dont je parle. Vous leur auriez donné un smartphone, ils vous hackaient le minitel (chose qui se produisait d'ailleurs de temps à autre ^^) depuis la Suède.

Nous nous attaquions à des animations interdites par les capacités matérielles. Nous calculions des cosinus sans un seul nombre à virgule. Nous inventions des fractales. Nous pouvions animer une infinité d'objets pour le coût de calcul et d'affichage d'un seul. Nous écrivions du code capable de se modifier tout seul. Nous tracions des courbes dansantes avec des algorithmes qui ne traçaient que des lignes droites. Nous faisions apparaître des couleurs inconnues des circuits imprimés. Nous faisions de la musique avec le vent du volume sur une machine. Et ça marchait, parce que nous détournions sans cesse les choses.

Ce que nous voyons n'est pas le réel, et pourtant nous le voyons. Nous en comprenions, à 14 ans, toute la portée concrète. Nous étions des hackers.

 

Siècle technologique

Il y a toujours un début et une fin. Cette époque d'entrée d'une technologie contrainte à l'ouverture par son manque de puissance est révolue. Il reste parfois l'esprit, mais plus aucune nécessité. La technologie ne peut plus être une rencontre du 3ème type pour les générations futures. Nous sommes cernés par la facilité technologique dès la petite enfance.

Personnellement, après que Bill Gates ait fait entrer ses machines par effraction et pris dans un hold-up outrancier tous les marchés par le bout de l'informatique d'entreprise, je n'ai que rarement codé sur le restant par plaisir, ou par simple curiosité.

Certains ont encore la fibre. On bricole sur de l'arduino, et on fait des démos en 64 kilo-octets. Ceux-là savent de quoi je parle, bien qu'ils utilisent des modèles et des outils largement éloignés de l'aspect extrêmement sommaire des premiers ordinateurs.

Dans ce siècle qui glorifie sans cesse la technologie, ce sont des machines qui développent des machines. Allez lire leur code, vous n'y trouverez plus aucune intelligence, plus aucune finesse. Juste de la performance. Et très peu de lisibilité.

En 1969, un ordinateur moins puissant qu'un smartphone conduisait sur la lune. Quand aux ordinateurs actuels connectés pour aller sur facebook, ils consomment par année et par individu le coût d'un aller-retour Paris-New York en avion. Qu'est-ce que la puissance technologique ?

Je me limite à ne parler que d'un aspect de ces choses. Les plus avisés comprendront qu'elles en rejoignent d'autres. Il y avait une rareté bien pensée. Dorénavant, les jeunes informaticiens sont formés à des surcouches qui s'empilent sur les systèmes comme dans une archéologie qui ne pourrait plus rien savoir du sous-sol. L'essentiel dans ces métiers est désormais de savoir faire bouillir l'eau avant de mettre les pâtes, tant pis s'il faut pour cela une usine logique incommensurable, que seuls quelques experts peuvent comprendre de bout en bout. Certains sont bien sûr plus ou moins doués à la cuisson. Mais de cela, Ada Lovelace, celle qui proposa la méthode algorithmique en 1840, en avait dit l'essentiel. Le fil du temps n'est pas celui d'une évolution constante.

La technologie a connu l'artisanat. Le rempailleur a mis les clés sous la porte parce que l'enseigne ne pouvait pas suivre le design de masse. Peu savent qu'il peut y avoir une grande beauté dans quelques lignes de code. Une intention et un geste d'une grande précision réalisés avec un matériau primitif. La trace d'un artiste. Lorsque, dans la technologie, il y avait encore une œuvre.

 

Merci pour votre lecture !


Moyenne des avis sur cet article :  5/5   (6 votes)




Réagissez à l'article

65 réactions à cet article    


  • mmbbb 23 septembre 2017 17:43

    " En 1969, un ordinateur moins puissant qu’un smartphone conduisait sur la lune. " Bemol Neil Armstrong dut reprendre les commandes de l aigle puisque la memoire de son ordinateur ( memoire a tore ) était saturé et évita ainsi de s ’écraser. il est vrai qu a l Epoque un ingenieur comme Korolev et Von Braun savaient a merveille manipuler la règle à calculer. Quant à moi j avais repondu a une annonce concernant d un ordi dans les annees 1987 . Une femme voulut me vendre un ordi a 27 000 francs de l epoque qui ne pouvait pas faire grand chose . Sauf a voir de gros pixel sur un ecran bleu violace et apprendre le DOS et les lignes de programme Je n ai jamais eu un grand plaisir a manipuler ces disquettes au travail et a m emmerder avec des disques souples . A 4117 euros aujourd hui vous avez une superbe machine . Si votre article bien qu un peu long est intéressant, il a tout de même cet inconvénient d etre un peu passéiste .


    • Ciriaco Ciriaco 23 septembre 2017 18:22

      Pourquoi parler du passé aujourd’hui serait un inconvénient ?


    • mmbbb 23 septembre 2017 18:43

      @Ciriaco non j ai connu des informaticiens ayant utilisé la carte perforée ( systeme etabli par Hollerith ) les memoires a tores dont les cycles d hystérésis les rendaient moins fiables qu une meoire a transistors actuelles . Ces informaticiens connurent les bandes et les gros ordinateurs etc etc 
      Vous pouvez remonter au triodes et au ordinateurs d Eckert cella ne me gene pas Mais c est de l archéologie informatique . La seule utilisation actuelle des triodes est du domaine de la HI FI . De nombreux utilisateurs dont les japonais utilisent des lampes. Belle restitution beaucoup moins cliniques que les transistors


    • Ciriaco Ciriaco 23 septembre 2017 18:58

      @mmbbb
      C’est pour cela que j’ai écrit cet article : un autre son de clocher, une autre réalité, dans la très répandue vision utilitariste (et marchande) de la technologie.


    • mmbbb 23 septembre 2017 19:37

      @Ciriaco toutes les technologies evoluent et il est un domaine ou la science et la technique ont apporte des resultats remarquables l informatique couple a la physique Je pense notamment a la medecine et l imagerie medicale Prenez les images des années 1990 et celles d aujourd hui un
      bon en avant Quant au langage nous en sommes au raisonnement artificielle et l ordinateur a pu battre le meilleur joueur de GO , Quant a la technologie sa finalité est d etre utilitaire je regarde un tableau au Louvre je lis un livre mais bon je ne vais pas me pamer devant un ordi quoique je trouve les anciennes triodes belles


    • L'enfoiré L’enfoiré 24 septembre 2017 10:17

      @Ciriaco

      Exact. Il y a une règle très capitaliste qui se trouve derrière l’idéologie numérique : toujours faire plus avec moins de moyens.
      Mais de cela tout est passé au bleu, puisque les bénéfices sont plus importants et sont peut-être en relation avec les pénuries de notre Terre à fournir plus...
      Le numérique est aussi écologique dans ses fondements.


    • L'enfoiré L’enfoiré 24 septembre 2017 10:24

      @mmbbb,

       Les prix des machines...
       Un domaine en chute libre.
       On n’achetait pas une machine, on la louait.
       On partageait le temps machine et on le vendait ... souvent pendant la nuit.
       Le DOS, les cartes perforées taille rectangulaire et puis carrée.
       Les caractères alphabétiques en deux perforations.
       Les prix ont chuté avec les compatibles.
       Les PC n’ont plus été rentables.
       Beaucoup de sociétés ont disparu corps et bien ou ont changé de nom pour « rajeunir »..
       Digital, PDP, Compaq,.. Qui s’en souvient encore ?
       Et, dans les périphériques ?. 
       Souvenirs, souvenirs...


    • barbarossa 25 septembre 2017 15:32

      @mmbbb

      les lampes sont utilisées entre autres pour des motifs de défense nationale, car les transistors peuvent être inhibés par bombardement (ce n’est pas le bon terme, celui-ci m’échappe) électronique, une méthode développée par l’URSS dans les années 70.

    • baldis30 23 septembre 2017 22:06

      Très bel article,

      Il faut avoir vécu cela pour en comprendre toute la portée ... l’accès au langage interne de la machine ....par exemple ..

       Et encore l’auteur avait un écran ...

      Le premier tenait plus de la calculatrice (moyennement) élaboré n’avait qu’ne impression à partir d’un rouleau .. et combien en étions nous fiers pour mener en quelques minutes bien des calculs qui auraient pris des semaines à la main et à la règle à calcul ... la puce était un 4004 !


      • Ciriaco Ciriaco 24 septembre 2017 02:10

        @baldis30
        Grave smiley


      • nono le simplet 24 septembre 2017 08:18

        mon premier ordi était un Thomson MO5, avec une RAM gigantesque : 48 k  avec un lecteur de K7 smiley

        de quoi faire mumuse en basic ...

        • baldis30 24 septembre 2017 09:22

          @nono le simplet
          bonjour,

          Privilégié ! ....  smiley

          j’avais 8k et péniblement on est passé à 16 et par un effort inouï ( vu le prix ...) à 32....


        • L'enfoiré L’enfoiré 24 septembre 2017 10:33

          @baldis30

          48 Kb, mais c’était Byzance...
          J’ai commencé sur un 4KB et des séries de floppis disks de 360 Kb pour sauver mes billes....


        • Ciriaco Ciriaco 24 septembre 2017 12:27

          @nono le simplet
          MO5, c’était pas mal ce ptit ordi ^^ Aussi le choix de l’Éducation Nationale à l’époque ! Il s’est fait un peu éclipsé par Amstrad et Commodore... les produits français et la technologie, ça a fait rire. Pourtant il était de la famille et tenait honorablement sa place dans le meilleur magasine du siècle ^^


        • Ciriaco Ciriaco 24 septembre 2017 13:49

          @baldis30
          Faut dire aussi un truc : les parents faisaient de gros efforts pour nous payer ça. C’était l’économie d’une année qui partait pour le gamin. Et le cadeau était intelligent, il nous faisait des souvenirs pour la vie.


        • nono le simplet 24 septembre 2017 19:47

          @baldis30

          bonjour Baldi,
          qques années plus tard j’ai acheté un Amstrad avec plein de jeu à la Camif, un ordi « réparé » mais comme neuf avec une IMPRIMANTE,le must smiley
          je me souviens d’un jeu, Boulder, que j’adorais, un petit gars qui creusait des galeries dans un labyrinthe... 

        • Nestor 24 septembre 2017 20:28

          Salut nono le simplet !

          Boulder Dash excellent jeu où il fallait récupérer des diamants sans se prendre les boules de rocher sur la gueule !

          J’ai testé il y a peu de temps une version plus moderne ce n’était pas un plus un petit bonhomme mais une marmotte je crois ...

          Pour les jeux il y avait aussi Montezuma’s Revenge qui était un bon jeu ...

          Ma Machine de l’époque un Atari 800 XL ...


        • Nestor 24 septembre 2017 20:38

          Sinon un jeu où on pouvait jouer à deux et que j’adorais → Trailblazer ... Un ballon sur des pistes dans l’espace un Wipeout avant l’heure ...


        • nono le simplet 25 septembre 2017 00:20

          @Nestor
          salut nestor

          mon fils m’a parlé de cette version moderne de Boulder ... j’aimais bien l’ancienne, c’était assez lent pour que je puisse gagner de temps en temps, lui, à 5 ans , était meilleur que moi smiley

        • nono le simplet 25 septembre 2017 00:23

          ça devait aussi être un Atari ...


        • L'enfoiré L’enfoiré 24 septembre 2017 10:12

          Bonjour ciriiaco,

          J’ai beaucoup aimé votre billet.
          « La technologie a connu l’artisanat »
          Cette époque-là, je l’ai bien connue.
          La beauté de la recherche du moindre espace, du moindre gain de temps pour obtenir le plus d’efficacité à la limite des moyens comme la réentrance.
          Pourtant on parvenait a créé grâce à des artifice à exécuter une comptabilité. mais sans le user-friendly qui lui a nécessité d’énormes moyens supplémentaires pour créer des Windows....

          Vous ne parlez pas de votre âge, mais c’était un temps de pionnier. L’Assembler, le langage machine, les dumps mémoires pour découvrir le bug, là où la machine avait décidé de s’arrêter sur une instruction.
          Puis les langages spécialisés comme le Cobol, le Fortran, le PL1 se sont ajoutés avant de comprendre qu’il fallait rationaliser et sortir des complexités en créant des outils comme Java.
          Oui, il y avait la compilation des instructions, mais cela ne voulait rien dire pour autant. Il fallait sortir des boucles au moment opportun. J’ai participé à de grands projets, pour émuler de gros ordinateurs comme un IBM 360 de l’époque, sur de très petites ordinateurs (bien avant le PC années 70) sur des machines où les bits étaient vraiment coupés en deux.
          Maintenant on parle de double-words au minimum.
          Une époque de pionnier où l’écran était limité à 10 cms de large, 4Kb de mémoire.
          On ne parlait ni de numérique, ni de connexion par internet.
          Une époque où bien sûr l’année ne pouvait prendre que deux chiffres pour gagner de la place.
          Tout cela je me suis amusé de l’écrire dans une histoire de l’informatique insolente et insolente.
          Une histoire de professionnels exclusivement avant les PC du Traitement de l’Information brute, parce qu’après tout a explosé avec le « C » qui s’est ajouté pour former les TICs.. .
          C’est le seul domaine qui est entré dans tous les autres.
          Et nous ne sommes qu’au début, à l’orée du bois de cette explosion révolutionnaire.
          Comme vous dites, "Peu savent qu’il peut y avoir une grande beauté dans quelques lignes de code. Une intention et un geste d’une grande précision réalisés avec un matériau primitif. La trace d’un artiste. Lorsque, dans la technologie, il y avait encore une œuvre".

          Aujourd’hui l’informatique est devenu un outil et plus une fin en soi.
          Un iPhone est tellement entré dans les moeurs.
          Bien à vous


          • Christian Labrune Christian Labrune 24 septembre 2017 11:06

            "Peu savent qu’il peut y avoir une grande beauté dans quelques lignes de code. Une intention et un geste d’une grande précision réalisés avec un matériau primitif. La trace d’un artiste. Lorsque, dans la technologie, il y avait encore une œuvre« .

            @L’enfoiré
            C’est tout à fait vrai, en effet : il est rare qu’on puisse du premier coup concevoir un algorithme ou une suite de fonctions parfaitement optimisés du point de vue de la durée d’exécution et de l’utilisation de la mémoire. Quand tout cela se trouve parfaitement dégraissé, c’est aussi beau que ces démonstrations que les mathématiciens disent »triviales". La seule démonstration connue du théorème de Fermat est encore loin de l’être, mais ça viendra peut-être.


          • Ciriaco Ciriaco 24 septembre 2017 12:32

            @L’enfoiré
            Merci pour ce très intéressant retour !


          • Christian Labrune Christian Labrune 24 septembre 2017 10:54

            Votre article rappelle de bons et de mauvais souvenirs. Je me souviens de ma première machine : un apple II - Euro + que j’ai encore en haut d’un placard. 48Ko de ram, et l’OS sur une douzaine de kilo-octets de rom, avec des disquettes d’une capacité gigantesque  : 125 Ko !!!.
            Comme il n’y avait pratiquement pas de programmes disponibles si ce n’est un tableur et un traitement de texte adaptés au clavier américain, il fallait programmer en basic, ce qui devenait très vite impossible au-delà d’une certaine longueur de développement, et on arrivait évidemment à l’assembleur du 6502. Des cartes apparurent, de quelques centaines de Ko, divisées en plusieurs bancs de mémoire entre lesquels il fallait switcher puisqu’ils correspondaient les mêmes numéros d’adresses. Quand les programmes qu’on avait patiemment mis au point furent en état de fonctionner, enfin, Apple passa à un autre processeur sans assurer la compatibilité ascendante.
            Le même problème ne s’est pas posé avec les PC, du moins pas tout de suite : chaque nouveau processeur acceptait ce qui avait été programmé pour un autre ; on ne programmait plus guère qu’en C++, mais quand les processeurs ont été conçus pour traiter des mots de 64 bits, la nouvelle version du C++ de Microsoft ne pouvait plus assembler le code source de la version 6 sans des modifications si considérables sur un gros programme qu’il valait mieux tout recommencer en adaptant les anciennes fonctions.

            Tout semble avoir été fait, effectivement, dans l’industrie du hard et du soft, pour faire en sorte que les utilisateurs soient découragés de comprendre ce qui se passe à l’intérieur et d’utiliser la machine à leur guise. L’apparition de Linux aura été encourageante, mais il faut bien reconnaître que l’ergonomie des assembleurs en ligne de commande, quand on a eu l’habitude du visual C++, c’est un peu comme s’il fallait jeter son briquet pour allumer sa pipe en heurtant des silex !

            L’apparition des micro-contrôleurs, avec les cartes Arduino que vous évoquez, a quand même bien ranimé la passion des bricoleurs de l’informatique : on peut désormais fabriquer à peu près n’importe quelle machine, pour peu qu’on consente à passer quelques centaines d’heures à étudier ces cartes pour être à même, dans des systèmes un peu complexes, de les faire communiquer entre elles d’une manière vraiment efficace. Allumer des diodes, faire tourner des moteurs, c’est facile, mais ça ne va pas bien loin. Quand on voit le niveau assez faible des sites internet qui traitent en France de ces questions, bien plus faible que celui des sites américains, on se dit que beaucoup d’utilisateurs finiront aussi par se décourager.

            Mais l’essentiel, ce serait quand même que nos contemporains comprennent un peu mieux ce que sont ces gadgets qui les fascinent de plus en plus, qu’ils passent leur temps à tripoter n’importe où et même dans le métro, et avec lesquels ils entretiennent une relation au fond très archaïque et primitive, de l’ordre de la pensée magique.
             


            • Ciriaco Ciriaco 24 septembre 2017 13:00

              @Christian Labrune
              Personnellement j’ai été vite rebuté par l’adressage de la mémoire sur les processeurs Intel. On pouvait pressentir qu’il y avait là un moyen d’assurer une certaine compatibilité dans le temps, mais on perdait pas mal en élégance. Quand on comparait avec les 68000 de Motorola, on faisait vite son choix... Même sur du Linux vous savez, faire de l’Intel, ça m’a toujours freiné. C’est autre chose que j’ai apprécié sur ce système (le seul qui a botté le cul à MS d’ailleurs ^^).


              L’arduino est sympa, oui, carrément. Tous les informaticiens ne partagent pas ce goût cependant. Nous passions par une voie obligatoire de frugalité, et c’était s’emparer de quelque chose, et comprendre de quoi nous parlions. Il y aurait beaucoup de choses à faire dans l’Éducation Nationale avec ce truc, mais les dirigeants français, qui se prélassent en général dans la béatitude sur ces questions, ne comprennent absolument rien à la technologie et à sa capacité de formation.

              De nos jours le routage d’un smartphone, acheté pourtant, est contractuellement illégal !


            • Ciriaco Ciriaco 25 septembre 2017 00:03

              @Self con troll
              Vous devriez pouvoir trouver ^^


              Pour répondre à votre seconde question et de mon point de vue, le callback est une notion pas si ancienne en dev, et un peu vague. On en parle au sujet d’un paramètre de type fonction (un agrément des langages de développement évolués), une fonction sur événement (listener, typiquement ce qu’on fait en événementiel - web ou autre), ou un hook (une fonction de détournement, dont la ROM des anciennes machines étaient truffées - un véritable délice).

              En ce qui concerne une interruption, la vectorisation est native, du moins pour celles qui le permettent (suivant le matériel), avec des modes précis de comportement (c’est plus transparent dans un langage autre que l’assembleur bien sûr - donc plus flou). Une autre différence est que l’interruption, puisqu’elle peut par définition intervenir à tout moment, doit prendre garde à la préservation du contexte qu’elle interrompt. Elle possède également des contraintes de durée d’exécution. 

              Globalement une interruption est un mécanisme qui se situe en dessous des couches de l’abstraction du callback, ce qui situe un contexte différent.

            • baldis30 25 septembre 2017 21:52

              @Ciriaco
              bonsoir ;

              « les dirigeants français, qui se prélassent en général dans la béatitude sur ces questions »

               Oh ... comment est-ce possible !

              A moins que vous leur concédiez pas le droit de dormir .... smiley 


            • Christian Labrune Christian Labrune 26 septembre 2017 10:25

              @Ciriaco
              Je suis d’accord avec vous : le 68000 en assembleur, c’était une merveille, et je l’ai beaucoup programmé sur l’Atari. Le problème c’est que si on avait très vite pu trouver des ouvrages qui décrivaient la rom de l’Apple 2 et permettaient d’accéder à ses sous-programmes, sur l’Atari, à ma connaissance, cela n’avait jamais été publié. Il fallait donc réinventer toutes les fonctions mathématiques, ce qui faisait perdre un temps considérable. Le visual C++ de Microsoft sur les PC, avec un accès transparent à toutes les fonctions de Windows, en comparaison, c’était le paradis.


            • Ciriaco Ciriaco 26 septembre 2017 12:23

              @Christian Labrune
              Je comprends. Pour ce qu’on faisait, la problématique était celle du calcul en 25 images par seconde. Ça conduisait à une approche différente. Il n’était pas envisageable d’utiliser des langages évolués, pas même le C. Hors de question d’utiliser des matrices (et ces 12 multiplications) pour faire des rotations dans l’espace, ou de calculer en virgule flottante avec les librairies usuelles... et pourtant nous animions en temps réel des objets 3D avec un proc à 7,16 Mhz ^^ Seul l’assembleur permettait de faire des optimisations très subtiles.


              Une astuce, trouvée dans un bouquin de DEUG de math quand j’étais ado : les coordonnées polaires, qui permettaient de calculer une rotation avec... deux additions. Peu me rendait heureux smiley

              La contrainte du manque de puissance était très formatrice. Je me souviens, lors de mon premier job en entreprise... Je développais en VB. C’était du lourd. J’avais détourné le moteur d’affichage pour gérer les événement moi-même via l’API bas niveau de Windows. Ça ouvrait des possibilités inédites.



            • Ciriaco Ciriaco 26 septembre 2017 12:36

              @baldis30
              Aucun risque : ils me croiseraient dans une gare, ils ne verraient... rien ^^


            • Christian Labrune Christian Labrune 26 septembre 2017 17:26

              @Self con troll
              Je ne sais plus combien il y avait d’accumulateurs sur le 6502, mais c’était très insuffisant, et en huit bits ! Sur le 68000, il y avait sept registres de données et autant de registres d’adresses, sur 32 bits. C’était comme passer d’une départementale à l’autoroute. Je suis arrivé au PC parce que j’avais été échaudé avec Apple. Je le serai encore avec le système PC lors du passage aux processeurs 64bits, mais pendant quelques années, les choses furent assez agréables, même si j’ai toujours eu horreur des langages orientés-objet. qui ressemblent bien souvent à un marteau-pilon dont on se servirait pour écraser des mouches. Cela dit, j’ai toujours été un amateur, en informatique, et je n’exclus pas que ma vision des choses, à cause de cela, ne soit un peu bornée.

              Je trouve que l’arduino est quelque chose de passionnant, à condition toutefois de savoir utiliser plusieurs cartes pour un même système. Sinon, cela reste extrêmement limité à cause de l’utilisation des timers. Par exemple, si vous utilisez des servo-moteurs, vous ne pourrez pas utiliser les librairies qui commandent certains périphériques de communication radio recourant au même timer, et la gestion des interruptions présente aussi bien des limitations gênantes : impossible, par exemple, d’utiliser des interruptions sur un clavier analogique fonctionnant en diviseur de tension. Le mieux est donc de relier plusieurs cartes en recourant à l’opto-électronique : les optocoupleurs réagissent à très grande vitesse, et on peut de cette façon faire passer d’une machine à l’autre des séquences de 32 octets en quelques millisecondes, et sans la moindre erreur. Un seul processeur ne peut faire qu’une seule chose à la fois, et celui des Arduinol est trop lent pour pouvoir contrôler plusieurs processus simultanément s’il faut contrôler des moteurs. Pour construire un système robotique un peu performant, il faut pouvoir inévitablement faire fonctionner plusieurs cartes en même temps, chacune travaillant en continu à sa fonction propre.

              Je ne suis pas sûr de bien comprendre votre dernier paragraphe. Ce que je crois comprendre c’est qu’il faudrait pouvoir s’affranchir, par exemple, de l’interface graphique de windows et programmer sa propre interface. Ce n’est pas si difficile à réaliser, même en C++. Un logiciel comme Blender, par exemple, qu’il va falloir que j’étudie pour utiliser l’imprimante 3D que j’ai construite (en kit : je ne l’ai pas inventée !) présente une interface originale qui ne doit rien aux fonctions disponibles de Windows, et ce n’est pas plus mal.
               


            • Christian Labrune Christian Labrune 26 septembre 2017 17:38

              @Ciriaco
              Ah, les rotations ! J’avais mis au point, sur l’Apple II, en assembleur, un système de CAO 3D qui me permettait de construire des structures assez complexes à partir d’un certain nombre de primitives, mais c’était en filaire, et il n’y avait pas d’algorithme d’effacement des parties cachées ; je ne pense pas que la mémoire très réduite de la bête aurait permis d’implémenter ça. Je pouvais quand même, sur une une imprimante ordinaire, avoir des images agrandies de n’importe quelle taille en collant bord à bord les bandes de papier à picots. On était vraiment dans l’artisanat ! Qu’est-ce qu’on a pu se faire suer à programmer des nuits entières, mais c’était quand même délicieux.


            • Ciriaco Ciriaco 26 septembre 2017 23:51

              @Self con troll

              Ben je crois que justement... C’est un bon reflet de l’évolution en complexité, qui nécessite toujours des niveaux différents d’organisation. Prenez un flux d’information dense, vous verrez que si vous souhaitez en faire quelque chose, vous allez dessiner des filtres, des orientations, des ensembles ; vous allez segmenter, spécialiser, et vous aurez besoin de trouver une méthode et de créer des méta-informations pour le faire.

              Selon les machines et l’objectif, en assembleur on codait sans, c’est-à-dire qu’aucun appel à la ROM ou à des librairies du système n’était nécessaire. C’était full play, on éteignait tout, et à nous la machine. Le charme était d’agir au cœur. Vous savez, nous sommes un peu enfermés dans les métiers. Le goût que j’évoque est un peu celui de l’archéologue, du paléontologue, de l’historien, de l’anthropologue.

              Je diverge un peu mais... Nous aimons nos racines et elles sont bien plus importantes, y compris pour l’avenir, que ce qu’une société de la table rase voudrait nous faire entendre.

            • Christian Labrune Christian Labrune 27 septembre 2017 01:53

              Je suis un peu étonné que ni ciriaco ni vous ni personne ne s’interroge sur la raison pour laquelle on fédère les logiciels autour d’un système.

              @Self con troll
              il y a déjà longtemps que j’ai cessé de programmer, si ce n’est le C rudimentaire de l’Arduino, mais dès que j’en aurai le temps, je vais m’y remettre, et il me semble que la meilleure manière d’éviter cette question de la prévalence des OS, ce serait d’utiliser QT5 initialement développé pour Linux mais qui tourne aussi très bien sous Windows. Il y a longtemps que j’ai installé ça sur mes deux systèmes ; j’ai un peu lu la documentation, mais si j’ai passé deux heures sur le logiciel, c’est bien tout et cela ne permet évidemment pas de porter le moindre jugement sur la chose. Je compte cependant m’y mettre un de ces jours.
              Dans la présentation qui est faite de cet assembleur, il suffirait de dire : voilà, je veux que mon code source produise un code objet pour Windows, pour Linux ou pour l’OS d’Apple. Je suppose que dans la réalité ça doit être beaucoup plus compliqué que cela, Avez-vous des lumières là-dessus, ou même une expérience de ce système de développement ?
              Vous ne paraissez pas non plus avoir une passion immodérée pour la programmation orientée-objet !


            • Christian Labrune Christian Labrune 24 septembre 2017 10:56

              ERRATUM
              puisqu’ils correspondaient les mêmes numéros d’adresses.
              puisqu’ils PARTAGEAIENT les mêmes numéros... Excuses !


              • Aristide Aristide 24 septembre 2017 12:21

                La nostalgie, ah, mon bon mossieur, à l’époque on savait ce qu’était un bit, un octet, ASCII, EBCDIC, ... Un écran de tv et un clavier ? Ouais, on avait vu cela à la télé ou dans les films de science fiction.


                Il fallait bosser avec du papier, un crayon et une gomme. Une feuille de saisie quadrillée servait de guide à notre immense imagination(*). Voilà donc qu’il fallait envoyer cela à la saisie sur des « trouilloteuses » de compétition, des esclaves de la saisie passaient leur journées à transformer nos créations en bacs de cartes perforées avec des machines extraordinaires. Il fallait surtout numéroter les cartes, la moindre maladresse transformait cette étape en supplice consistant à les trier à la main ...

                Après avoir récupéré le paquet, quelques heures plus tard , il fallait donc ajouter le JCL, codé et trouilloté de la même manière, la machine allait suivre à la lettre nos ordres et avaler notre paquet de cartes pour lui faire subir une première lessive. La compilation. Quelques temps après, un opérateur goguenard trônant à un guichet style accueil de supermarché nous restituait notre oeuvre : un listing où la réalité nous frappait en pleine poire, notre génie du codage informatique se transformait en piteuses lignes imprimées agrémentées de messages d’erreurs. Le sarcasme de ce moqueur était proportionnel, strictement, au nombre d’erreurs que nous avions réussi à réaliser. Terminant toujours par un « Et ben, cette fois, tu as réussi, tu as battu ton record ». 

                On partait le nez dans notre listing, vous savez ces grandes feuilles blanches et larges et surtout trouillotées sur le coté. C’était une manie de l’informatique de l’époque, on trouillotait tout, les cartes, les bandes un peu avant, les listing. Pour se singulariser, les trous n’était jamais les mêmes, ronds sur les listings et les bandes, rectangulaires sur les cartes. Nous étions les spécialistes du trou. Le trou : 0 si pas trou, 1 si trou, le trou donc est à l’informatique ce que la roue est au transport routier. La comparaison est nulle je vous l’accorde.

                Pour le séchage de la lessive, le dilemme était pregnant, soit on répétait l’opération de correction avec nos trouilloteuses professionnelles et on récupérait de belles cartes après une longue attente, soit on devenait un champion de la trouilloteuse manuelle. On insérait une à une des cartes pour corriger nos grosses mais géniales erreurs dans une machine rustique, avec ses 14 touches. Il fallait réaliser un exploit pour gagner le temps de saisie des professionnelles. Inconvénient majeur, pas d’impression en haut de carte ... mais bon on savait que 12 1 était un A, ... Bien sur ne pas oublier de mettre les numéros de lignes, ... Avantage tout de même, cela renforçait sacrément l’agilité pour jongler entre ces codes en appuyant virilement sur des touches ... assez récalcitrantes. J’ai connu un loulou qui faisait le job pour les filles qui ne voulaient pas abimer leur vernis. Je n’ai jamais su ce qu’il gagnait en retour ...

                Notre géniale intervention de lessive et séchage était répétée des ... dizaines de fois pour arriver à sortir un listing exempt d’erreurs. Nous avions contribué pour une grande part au déboisement de l’Amazone. Ensuite, il fallait passer à l’exécution du machin, là je vous dis pas, fiche d’exploitation pour les opérateurs, jeux d’essais, ... enfin un vrai calvaire. Et toujours devoir affronter l’opérateur moqueur : si vous savez ce qu’est la haine ... Il parait que certains sont arrivés au bout ... J’en ai connu qui sont parti en dépression, d’autres qui faisaient des concours de trouilloteuses manuelles pendant les longs temps d’attente. Sans vouloir me flatter, je n’étais pas dans les plus mauvais, mais ma modestie m’oblige.

                Nous étions tous que des laborieux. Des génies, des artistes ? Surement des génies méconnus ou des artistes maudits du code informatique. Il parait même que dans de grandes banques, assurances, administrations et autres grosses sociétés, le coeur de leur informatique centrale utilise toujours quelques morceaux de nos géniales créations. J’avoue que nous n’avions aucune prétention à devenir d’illustres créateurs, on se marrait bien d’ailleurs et ... on s’en foutait un peu, mais on essayait assez bêtement de construire un code solide, lisible, facile à lire, à la portée du premier stagiaire venu,... enfin un peu des artisans sans aucune autre ambition que de se faire plaisir à réaliser du bon travail. Passer à la postérité que confère l’oeuvre de l’artiste ? Nous n’étions pas cet engeance ... 

                (*) Imagination ? Euh, bon légèrement cadrée par un dossier de dizaines de pages absconses qu’il fallait mettre en code. 



                • Ciriaco Ciriaco 24 septembre 2017 13:11

                  @Aristide
                  Mieux vaut le dire avec humour, c’est clair smiley Dur métier, c’est vrai. Et pourtant le goût du travail bien fait, bien construit, commenté, pour le type qui vient derrière. Et oui... dur à faire entendre tout ça !


                • Homme de Boutx Homme de Boutx 24 septembre 2017 22:03

                  que de souvenirs..

                   en 74 Micral G pour faire des asservissements en numérique avec 2 ko + 2 ko à 2000F
                  en 79, simulation du point de fonctionnement moteur d’Ariane 1 avec un paquet de carte IBM
                  le ZX81 à récupérer sur cassette les programmes diffusés sur la « Radio FM »...
                  le minitel détourné pour transférer des fichiers de poste à poste..
                  puis le PC, pour mettre fin à toute cette série de machine incompatibles d’un modèle à l’autre et d’une marque à l’autre.. les apple, hewlett packard,..
                  et là le changement d’ère, on a osé faire des calculs scientifiques avec un PC normalement affecté aux tâches de secrétariat... pour le premier essai le la TPH du moteur d’ariane 5 en 88 avec « multiplan » en calcul itératif).. il est vrai que la puissance se rapprochait de celle des ordinateurs scientifiques !
                  puis avec les nouveaux systèmes on a développé des interfaces par disquettes pour pouvoir continuer à travailler à la maison sur son portable à 30 000F (4500 € ss inflation, aussi le prix de l’imprimante laser) (en 90 toujours pas d’internet), 
                  une évolution qui nous aura quand même coûté cher !
                   

                  • barbarossa 25 septembre 2017 17:19

                    Bel article en effet.

                    Bien que la technique des computers date de l’entre 2 guerres les premiers ordinateurs sont rentrés dans les administrations publiques et privées dans les années fin 50 et 60.
                    C’étaient des énormes machines confinées dans des pièces climatisées, dont les mémoires étaient principalement à bandes magnétiques (donc uniquement accès séquentiel), systèmes à 7 bits.

                    Pour les fusionner il y avait donc plusieurs passages sur plusieurs bandes.
                    La première opération consistait à trier dans l’ordre voulu les dernières informations saisies et, une fois cette opération terminée, on fusionnait la bande ancienne et la bande nouvelle sur une troisième bande. 
                    Pour pouvoir accéder ces données dans un ordre quelconque de tri, il fallait créer autant de copies qu’il y avait de tris souhaités.
                    Il y a eu bien un IBM à disques durs (50 disques de 100 pistes sur chaque face, capacité total 5 mégaoctets, au prix de $50000). 
                    Les inputs se faisaient principalement par cartes perforées de 80 colonnes.
                     Le langages de programmation ont évolués en partant du codage machine (long, fastidieux, sujet à toutes les erreurs du monde car il fallait écrire des chaînes de 0 et 1), puis l’Assembler - langage de bas niveau, puis le Fortran premier langage de haut niveau. 
                    Les cartes perforées étaient créées sur des machines à clavier par des employées appelées les perfo-vérif.
                    Métier disparu.
                    Elles travaillaient dans des grandes salles avec des pupitres comme dans une école.
                    La première opération, la perfo, était la saisie des données au clavier à partir d’un manuscrit.
                     Les cartes ainsi créées et les manuscrits étaient ensuite passée à une seconde personne qui retapait les mêmes données sur les premières cartes. Ce qui décelait les erreurs. 
                    Les imprimantes étaient en général typo à chaîne, et crachaient à un rythme infernal (jeux de caractères seulement majuscules + chiffres et quelques signes). 
                    Il n’y avait pas d’écran (juste un petit display).

                    Puis il y a eu les computers des années 70 à 80. Postes de travail en réseau. 
                    Ecrans monochromes (noir-vert ou noir orange) de 25 lignes (sur certains types la 25ème ligne n’était pas accessible) de 80 caractères, et on a passé à 8 bits. 
                    Parallèlement il y a eu d’autres langages de programmation évolués dont le plus connu au niveau administratif était le COBOL.
                    Et on est arrivé à la double révolution de 1980.
                    Cette année là Apple a commercialisé son premier ordinateur à écran graphique et souris.
                    Ça c’était la vraie nouveauté technologique qui a séduit d’emblée la clientèle des graphistes et des libres professionnels comme les médecins.Système d’exploitation propriétaire.
                    Parallèlement IBM a décidé de créer un PC dont le système d’exploitation était Open. 
                    Et elle a choisi le DOS (de Bill Gates), un parmi les dizaines d’OS tous semblables sur le marché(utilisant le même processeur 8088 - Z80 Z81) - sans en prendre l’exclusivité - choix on ne peut plus funeste car c’est Bill Gates qui en a tiré tous les bénéfices, sans mérites particuliers. Un gagnant au loto en quelque sorte.

                    Ce premier PC, machine équipée au départ de 2 stations de floppy disks de 160k chacun n’était pas destiné au réseau. 
                    Mais il y a tout de suite une équipe d’informaticiens très connus à l’époque qui a vite développé un système de mis en réseau (Novell). Au même temps des milliers de programmeurs ont développé des dizaines d’outils gratuits qui ont amélioré les performances du DOS.
                    Un premier disque dur de 5 mégas est venu s’ajouter aux PC’s commercialisés par différentes marques, puis un de 30 mégas connu sous le nom de Winchester (mentalité américaine : Winchester n’a jamais fabriqué de disques durs - mais la technique à l’époque était que les disques durs aient une capacité double de la nominale pour contrôle d’intégralité : à chaque 0 sur une face correspondait un 1 sur l’autre et vice-versa, donc 30-30 le fameux calibre de la Winchester).

                    D’autres langages de bas niveau ont détrôné l’Assembler : C, C++, C sharp ).

                    Ce développement soudain de l’informatique a eu comme première conséquence la disparition
                    quasi immédiate des machines à écrire, et la perte de la profession de mécanicien-réparateur.
                     
                    Milieu des années 80 Microsoft a commencé à copier Apple par son Windows.
                    Et a développer des traitements de textes et autres tableurs. 
                    L’unique avancée de Windows pour laquelle on doit lui être gré est celle d’avoir obligés les fabricants de périphériques à passer par les protocoles maisons.
                    Avant pour programmer une imprimante c’était l’enfer, les jeux d’instructions d’une même marque par exemple en principe identique ne fonctionnaient pas de la même manière sur chaque modèle.




                    • Christian Labrune Christian Labrune 25 septembre 2017 17:48

                      @barbarossa
                      Il y a au Musée des Arts et Métiers une très belle salle où on peut encore voir plusieurs de ces machines du siècle passé. Au début des années 80, la Caisse d’Epargne, fort généreusement, avait fait don au lycée où j’enseignais de l’un de ses anciens ordinateurs. Les armoires métalliques s’étalaient sur au moins trois mètres ; il y avait, au milieu, un clavier du genre téléscripteur. Ce prodigieux matériel était doté d’une mémoire interne de près de quatre kilo-octets !


                    • barbarossa 26 septembre 2017 09:40

                      @Christian Labrune

                      Dans les mêmes années 80 EDF avait vendu un CRAY d’occasion à l’EPFL pour 5 à 6 millions d’euros. La vente de ce mastodonte, nécessitant comme il se devait d’une salle climatisées, aux performances des dizaines de fois inférieures à n’importe quelle stations de travail actuelles, avait dû être soumise à l’autorisation d’un Dépt. d’Etat américain, car considéré comme matériel « sensible » et secret. Cet accord avait été donné sous conditions que l’acheteur s’engage à y interdire l’accès aux étudiants de certains pays.
                      (A l’époque j’avais boosté mon poste de travail avec 16k de mémoire vive additionnelle pour la modique somme de €8000).

                      Un technicien hard australien que je connaissais c’était fait une petite fortune en récupérant au rebut ces gros ordinateurs, car les contacteurs (il y en avait des centaines par plaques entières) étaient recouverts d’un fin plaquage en or, ce dont presque personne était au courant.

                    • Christian Labrune Christian Labrune 26 septembre 2017 10:07

                      @barbarossa
                      Au musée des Arts et Métiers, dans une autre salle que celle que j’évoquais précédemment, au deuxième étage, là où sont les premiers accélérateurs de particules, on peut voir un super-ordinateur Cray, l’un des premiers probablement. Leur structure hexagonale avait quelque chose de très esthétique. Je suppose qu’en comparaison de n’importe quelle machine ordinaire actuelle de moins de trois ans, ces mastodondes ne font pas le poids, et les premiers Américains qui ont posé le pied sur la lune ne disposaient même pas, eux, de la puisssance de calcul d’un élève de lycée d’aujourd’hui muni d’une calculette à trente euros !
                      Dans vingt ans, il est bien possible que les machines à Qbits seront devenues banales, et notre quincaillerie actuelle paraîtra encore plus rudimentaire que les fossiles du commencement. La lecture de ce qui se publiait dans le magazine La Recherche au milieu des années 80 est souvent fort plaisante : on envisageait des disques durs qui pourraient atteindre prochainement des capacités tout à fait invraisemblables et proches du giga-octet !


                    • Homme de Boutx Homme de Boutx 25 septembre 2017 22:18

                      Et dire qu’aujourd’hui on gaspille les performances exponentielles en logiciel toujours en développement 30 ans après, des mises à jour quasi journalière, voraces en mémoire, en temps CPU, en bande passante, sans compter les antivirus toujours en train de gratter sur le disque ou les réseaux... un terrain de jeu pour les developpeur !

                      Heureusement que des fois on arrive à travailler, lorsque la pub ne bloque pas le réseau...
                      A regretter ce temps où l’on avait 2 ko de mémoire !

                      • barbarossa 26 septembre 2017 10:03

                        @Homme de Boutx

                        Ce qui ralenti le plus les ordinateurs actuels c’est le rafraîchissement de l’affichage appelé par le logiciel (non pas la fréquence de rafraîchissement intrinsèque) 
                        Je m’explique : 
                        écrivez un petit programme genre :
                        1. A=heure actuelle (heure, minute, seconde, centième)
                        2. B=0
                        3. boucle
                        4. B=B+1
                        5. Afficher B
                        6. Si B<10000 aller à boucle
                        7. C=heure actuelle
                        8. D=C-A
                        9. afficher D
                        10. Fin
                        Résultat : vous avez un compteur à l’écran qui tourne de 1 à 10000 et ensuite affiche le temps
                        employé (de l’ordre de 10 secondes environ).
                        Relancez le programme en supprimant la ligne 5 (afficher B).
                        le temps affiché à la fin du programme sera de quelques centièmes.
                         

                      • barbarossa 26 septembre 2017 13:03

                        @Self con troll
                        Prenez l’ordinateur avec affichage graphique le plus puissant du monde et vous aurez le même résultat.

                        Quant au langage de programmation, vous pouvez utiliser n’importe lequel (bas niveau, haut niveau,
                        avec des vrais ou des pseudo codes, dès qu’il est chargé en mémoire avec ses dll et qu’il se lance il n’y aura pas de différence sensible pour cette simple routine. Vous pouvez utiliser un C, un basic interprété ou même un troll comme Windev (runtimer requis) même combat.

                      • barbarossa 26 septembre 2017 14:31

                        @Self con troll
                        avec écran graphique, sous Linux ou Unix, pareil.

                        Les écrans texte, si ce n’est pas en simulation, ça va beaucoup plus vite (4000 caractères stockés sur une Matrix au lieu de 2 millions de pixels à afficher - et pour chaque position d’affichage il y a encore un attribut, qui donne l’intensité, la couleur, le clignotement).
                        Le problème vient du fait que le programme, pour afficher le compteur séquentiel à chaque itération de la boucle, doit activer une interruption système qui appelle le refresh (même si c’est en multi-tâche ça ralentit).
                        L’affichage est régi par un processeur propre sur la carte graphique, mais qui doit être quand même en syntonie avec les caractéristiques de l’écran. Les écrans les plus performants tournent autour de 144 kh secondes.
                        La cadence du CPU à peu d’importance à ce niveau.

                        Une autre cause du ralentissement d’un ordi c’est le réseau. Les échanges entre appareils ne se font pas au rythme de travail des processeurs, dont la fréquence est propre à chaque modèle, mais à celle de l’horloge système qui elle est toujours de 19.6 cycles secondes.

                      • Aristide Aristide 26 septembre 2017 19:03

                        @Self con troll et @barbarossa


                        Les logiciels « système » de base sont d’une grande complexité. L’affichage graphique est un des composants de ces systèmes, comme la gestion du réseau, des fichiers, de la mémoire, des processus, des entrées : sorties, ...

                        Vous ne pouvez tirer aucune conclusion du petit programme d’essai que vous avez écrit. Les quelques lignes de calcul, boucle et test ne réprésentent que très peu de code à exécuter, ce sont des opérations simples qui ne font appel qu’aux fonctions de base du processeur, le nombre de lignes de code déroulé est faible. Par opposition, pour ce qui est de la ligne 5, suivant le système que vous utilisez, il sera appelé des centaines de lignes de codes pour simplement imprimer. Ce code est implémenté dans des bibliothèques graphiques d’une extrême complexité qui réalisent aussi bien la « simple » écriture d’une chaîne de caractère que l’affichage d’une ombre portée d’un objet complexe. J’écris simple mais ce n’est même pas simple d’écrire un chaîne de caractère sur un écran graphique.

                        Pour évaluer ce petit programme et mettre en évidence ce que vous avez écrit, il faut passer outre le mode graphique et donc ouvrir votre système en mode commande. Simple en linux, il suffit de ne pas lancer de gestionnaire graphique, mais pas impossible sous windows ( mode sans échec avec invite de commande).


                        Toutes les fonctions des systèmes modernes sont d’une extrême complexité, les couches réseaux sont singulièrement complexes, de nombreux protocles, des couches de liasion à la couche applicative ... idem pour les fichiers, les entrées sorties, ...

                        Pour trouver une analogie de l’architecture d’un système, il faut imaginer un cahier composé des milliers de feuilles ou chaque feuilles est découpée en quartier qui communiquent entre eux mais qui communiquent aussi avec les autres feuilles et quartiers souvent en respectant quelques contraintes, ne communiquer qu’avec les feuilles ou quartiers qui sont au dessus ou en dessous. Mais bon, dans la pratique et pour raison de performances cette architecture soignée est mise à mal par des raccourcis.

                      • barbarossa 26 septembre 2017 20:02

                        @Self con troll
                        En 1978 pour afficher un écran entier (4000 caractères) au lieu d’appeler la fonction d’affichage propre au programme, qui affichait ligne par ligne, j’utilisais une toute petite routine que j’avais écrit en assembler et qui accédait directement la mémoire et affichait un écran complet en 1/100 de secondes.

                        Dans votre exemple, vous constatez qu’entre le début et la fin de la boucle il s’est passé 10 secondes. Pendant ce temps, la machine a affiché 10000 fois une chaîne de 12 caractères.

                        la chaîne affichée est de 6 car.


                        N’a-t-elle fait que ça ?

                        Bien sûr que non, l’unique raison de mes propos était d’attirer l’attention du lecteur que les causes des lenteurs constatées de nos PC, à part les logiciels résidents, dépendaient beaucoup du refresh de l’affichage et des échanges réseau.

                        Je n’ai pas refait le calcul depuis au moins 20 ans, mais déjà à l’époque si un programme pour exécuter une tâche devait tourner 24 en mémoire vive, la même tâche avec des accès disque uniquement prendrait une 60aine d’années.


                      • barbarossa 26 septembre 2017 20:52

                        @Aristide

                        « Par opposition, pour ce qui est de la ligne 5, suivant le système que vous utilisez, il sera appelé des centaines de lignes »


                        Non, c’est une exagération. Pas des centaines. Une séquence de codes « escape » pour imprimer une chaîne de 6 caractères, à part ces derniers, comporte en général moins de 10 caractères. 
                        Par contre les logiciels de traitements de textes arrivent à envoyer inutilement la même chaîne de codes plusieurs fois (l’utilisateur n’y voit rien, le programmeur veut être sûr que la chaîne soit bel et bien prise en compte). 
                        Ceci est visible si on met l’imprimante en mode dumping dans lequel elle imprime toutes les séquences qui lui sont envoyées. C’est édifiant de découvrir ce qu’on nous fourgue à prix d’or.
                        Et ceci pour les programmes les plus cotés sur le marché.

                        Mais il n’y a pas que les traitements de textes.

                        Un des programmes de gestion le plus coté en Europe, dont les licences et les mises à jours coûtent des millions, c’est le SAP (allemand) utilisés par les plus grandes administrations publiques et privées, et qui vient ces jours-ci de racheter une grande entreprise israélienne de la branche.
                        Il y a dix ans, lorsqu’un grand groupe européen a cessé son activité dans un de ses secteurs et par conséquent a vendu son unité de production (300 employés), j’ai été chargé de restructurer la partie informatique de cette entreprise, en transférant les données SAP dans un autre logiciel.
                        J’ai donc eu accès aux dessins des fichiers SAP. Une vraie usine à gaz. Les spécialistes me comprendront : lorsque pour les besoins des traitements des informations on doit adjoindre ou agrandir une zone d’un fichier, en général on redessine le fichier concerné suivant les besoins, puis, à l’aide d’une « moulinette »
                        on lit l’ancien fichier, on transfère les données dans le nouveau, on détruit l’ancien qui est remplacé par le nouveau dans le programme.
                        Chez Sap rien de tout cela : besoin d’une nouvelle zone ? on ouvre un second fichier lié au premier avec cette seule zone. Ainsi chez SAP le fichier client par exemple est composé d’une dizaine de fichiers reliées et tous ouverts en mémoire au même temps. Les connaisseurs apprécieront. 
                        Pour vous dire que dans ce fichier client (le même dessin pour toute l’Europe) il y a encore aujourd’hui une subdivision dans les adresses - complètement inutilisée - qui tient compte d’une particularité qui était propre à la DDR dont le processus de réunification s’est terminé en octobre 1990 (soit 10 ans avant la date limite de transformation du format date de 6 en 8 positions).


                        Pour évaluer ce petit programme et mettre en évidence ce que vous avez écrit, il faut passer outre le mode graphique et donc ouvrir votre système en mode commande. Simple en linux, il suffit de ne pas lancer de gestionnaire graphique, mais pas impossible sous windows ( mode sans échec avec invite de commande).

                        BIen sûr. Mais mon code servait à mettre le doigt sur une des causes des lenteurs en graphique.

                      • Homme de Boutx Homme de Boutx 26 septembre 2017 23:30

                        @barbarossa
                        il est sûr que les développeurs commencent par vérifier à chaque instant qu’ils ne sont pas piratés,

                        les anti-virus et autres grattent en parallèle 
                        les anti anti pub,...
                        et le système rame à la même vitesse que sous dos, voire pire..
                         combien de fois j’attend qu’il se décide à entrer dans un menu de cmde et même de voir s’afficher ce qu’on vient de frapper... ce qui était immédiat sous le même DOS
                        L’utilisateur n’a plus la priorité !

                      • barbarossa 27 septembre 2017 08:24

                        @Aristide
                        La forteresse volante ou le livre de Gütenberg ?


                      • Aristide Aristide 27 septembre 2017 12:57

                        @barbarossa
                        J’ai écrit :« Par opposition, pour ce qui est de la ligne 5, suivant le système que vous utilisez, il sera appelé des centaines de lignes ».


                        Vous répondez :"Non, c’est une exagération. Pas des centaines. Une séquence de codes « escape » pour imprimer une chaîne de 6 caractères, à part ces derniers, comporte en général moins de 10 caractères. 

                        Vous confondez le contenu de ce qui est à imprimer, et votre code qui utilisent les multiples bibliothèques qui effectueront l’affichage sur un écran graphique. Ces bibliothèques de gestion des interfaces graphiques sont très lourdes, et pour imprimer une simple séquence de quelques caractères, il faudra exécuter de multiples opérations, telles que créer un espace graphique, lui attribuer des caractéristiques, son parent par exemple, sa taille, ..il faudra instancier cet espace, choisir une fonte de caractères, utiliser cette fonte dans une bibliothèque qui l’utilise pour imprimer les caractères, etc ..... 

                        Enfin dans votre code il y aura quelques lignes de codes pour imprimer en fonction du langage, mais le compilateur ou l’interpréteur utiliseront des bibliothèques graphiques du système très lourdes.

                      • barbarossa 28 septembre 2017 14:25

                        @Shawford

                        quand tu auras dessoûlé on pourra causer.

                      • hervepasgrave hervepasgrave 1er octobre 2017 14:13

                        Bonjour,
                        il n’est jamais trop tard pour bien faire ! J’ai lu cet article ,mais je n’avais pas la possibilité de mettre un commentaire (absence,connexion,mauvaises volontés,autres choses a faire de plus terre à terre... )mais je ne l’ai pas oublié« l’article ». Il est très bien ,mais j’espère que tu en produiras un autre ,bien plus étayé.Là ! il est incompréhensible pour les jeunes et les vieux s’en contre foutent ,mais alors ! a un point que tu n’imagines pas.Qui peut en tirer du plaisir ,que ceux qui savent cela et n’ont que des plaisirs malsains, voila ! Ton nouvel article tu pourrais peut-être s’intituler « la mémoire volée ! » car tu parles d’un temps ou la mémoire était volatile,réduite alors que nous ignorions encore tout du hard ,trop attaché au soft. Je disais sur un commentaire que les jeunes n’ont pas eut l’éducation qui démarrais à la base depuis le langage machine ,maintenant avec des systèmes qui s’expandent dans le vide (mémoire) « pour les utilisateurs »ne se sont amélioré que par une composante qu’est « l’internet » mais plus certainement de « l’intranet » C’est beau le cloud « la tête dans le nuages,mais la réalité est et sera de tomber sur le cul tôt ou tard ».
                        Alors cestpasgrave ! si ce n’était que du travail baclé ! « oh ! »


                        • Ciriaco Ciriaco 1er octobre 2017 18:33

                          @hervepasgrave
                          Merci pour cet encouragement. J’écris un article ici dès que je me trouve un peu de disponibilité (en d’autres termes, la force d’aller au devant des tendances qui me la prennent). Ce qu’il en advient ne m’appartient pas et c’est tant mieux car l’écriture n’est pas faite pour que son auteur s’y attache. J’ai par contre ce qui s’appelle visiblement un défaut, celui de ne pas résumer l’écriture à la réaction ; cela je le réserve à mes commentaires. Quant à la déception, elle est simplement le fait de la différence entre ce que vous aimez et votre légitimité sociale à l’aimer. J’y suis un habitué depuis toujours.


                          Mais pour revenir sur l’écriture... le langage est une sirène de la liberté (et nous en avons peu). C’est la nature des choses humaines. Il ne s’agit pas du droit de s’exprimer, je dirais presque : bien au contraire.

                          J’aimerais écrire, bien sûr, et travailler à le faire. Simplement pour la lucidité que procure cet exercice. Je suis dans des conditions de grande précarité vis-à-vis de cela. Et très en colère pour cette privation de fait.

                        • hervepasgrave hervepasgrave 2 octobre 2017 12:53

                          Bonjour,
                          je comprends bien tes propos et comprends encore plus ton désarroi. une sorte de match nul entre nous ! beaucoup de bonnes volontés mais cela ne suffit pas. les écrits comme les paroles s’envolent c’est cela le plus ennuyeux .toujours trop tard. Bonne continuation !
                          cestpasgrave !


                          • Ciriaco Ciriaco 3 octobre 2017 20:10

                            @hervepasgrave
                            Pas grave Hervé smiley Bonne continuation aussi !


                          • barbarossa 3 octobre 2017 18:51

                            On est en train de pleurer on peu sur notre jeunesse passée en nous rappelant nos premiers pas dans cet univers féerique et prometteur qu’était l’informatique à ses débuts.

                            En oubliant les interminables heures de codage machine propres à nous rendre bigleux, et qui ont servi à fabriquer les outils plus sophistiqués de programmation.
                            Et le temps des Algol, Fortran, Cobol, Pascal et Apl arriva, avec leurs pseudo-codes et leur runtimers. Puis petit à petit d’autres langages plus évolués - mais aux performances plus restreintes - ont fait leur apparition, aux appétits en mémoire vive démesurés.
                            Je me souviens d’avoir utilisé une station de travail programmable IBM, modèle 3741, double floppy, clavier et display au langage propriétaire nommé ACL, qui utilisait 4k de mémoire vive dont 1k pour le système résident et 3k de travail. SI vous saviez ce qu’on a pu faire avec ce joujou !! 
                            De contrôles entiers de stocks en temps réel, de la compta, facturation, et j’en passe.

                            Actuellement on a des outils et de logiciels complexes, et parfois géniaux.

                            Mais la connerie humaine sera toujours la grande gagnante. Pour coller à l’actualité et à la tuerie de Marseille où un taré a réussi à berner toutes les forces de l’ordre par 7 fois en se présentant sous des identités différentes, est-ce qu’il n’y a pas quelque part quelqu’un pour expliquer aux géniaux informaticiens en charge des logiciels ce que c’est un fichier auxiliaire à clé unique dans lequel enregistrer en premier les codes empreintes digitales et adn, opération qui signale une erreur en cas de doublons ?

                            • Ciriaco Ciriaco 3 octobre 2017 20:55

                              @barbarossa
                              D’abord un homme a le droit de pleurer, déjà ^^ Le temps est passé...

                              L’IBM, j’imagine... et ouais faut le faire avec un diesel pareil !

                              Mais pour l’actu, ça rappelle combien l’acte d’un seul peut mettre en défaut tout un système. Personnellement ça me prends entre mille feux. Les victimes, le racisme, la surveillance généralisée, la guerre et sa déesse géopolitique, les innocents aussi là-bas, les articles de caniveau, du souffle, du souffle, du souffle sur les plus mauvaises braises et je m’essouffle.


                            • pemile pemile 3 octobre 2017 20:44

                              @Ciraco « Il y avait une rareté bien pensée. [..] La technologie a connu l’artisanat »

                              Il existe maintenant des bibliothèques et des protocoles bien pensés qui permettent encore un artisanat de qualité, non ?

                              J’ai aussi connu l’époque des cartes perforées et de la programmation en assembleur sur différents processeurs mais trouve encore du plaisir aujourd’hui à programmer.

                              Hors du monde mircrosoft, je ne suis pas non plus persuadé que la nouvelle génération ne sera qu’utilisatrice de bibliothèques et n’aura pas la curiosité d’aller au plus profond des couches systèmes ?


                              • Ciriaco Ciriaco 3 octobre 2017 22:08

                                @pemile
                                Un artisanat, franchement je ne sais pas. Au fond c’est une question de nécessité. Je pense à des astuces qu’on oubliera (un et logique pour déterminer la fin d’une boucle, en s’arrangeant avec la grandeur, et gagner en temps machine par exemple). Mais il est vrai que les langages évolués permettent toujours une élégance. Tout n’est pas dénué de finesse, heureusement. Mais d’artisanat... ce n’est pas le qualificatif que j’emploierais.


                                Bien sûr, il y a beaucoup de développeurs dans la communauté Linux, qui développent de petites merveilles. Et ne croyez jamais que le hacking soit has been ^^

                              • pemile pemile 4 octobre 2017 12:20

                                @Ciriaco « Mais d’artisanat... ce n’est pas le qualificatif que j’emploierais. »

                                Dans son sens petite équipe travaillant dans les règles de l’art ?

                                « Au fond c’est une question de nécessité. Je pense à des astuces ... »

                                Mais ces contraintes d’espace mémoire et de temps cpu menait souvent à un code très peu pérenne dans sa maintenance et son évolution au fil des technologie, non ?


                              • pemile pemile 4 octobre 2017 12:21

                                menaient et technologies smiley


                              • Ciriaco Ciriaco 4 octobre 2017 13:34

                                @pemile
                                Le terme « artisanat » a aussi le sens que vous lui prêtez, par opposition à du travail plus structuré du point de vue de la productivité. Ce n’est pas à ça que je faisais allusion, mais vraiment au geste technique.


                                Pour ce dont je parle nous avions entre 12 et 20 ans. Nous ne faisions pas de maintenance ; nous hackions la machine pour concrétiser une idée ou une autre. Chaque idée nécessitait un contrôle bas niveau à peu près total très spécifique à la machine. Quand on changeait de matériel, on ne portait bien sûr aucun code ; c’est un autre univers qui s’ouvrait. Cela aussi n’est plus aujourd’hui ; tout est standardisé.

                                Pour me rapprocher de votre question, pour ce qui est des métiers durant cette période, c’est la génération encore antérieure qui pourrait en parler plus précisément. Certains ont évoqué dans ce fil d’une organisation spécifique du travail. Ce que l’on fait toujours, d’une manière ou d’autre. Sur un plan plus technique, on serait tenté de dire que l’évolution des langages simplifie la maintenance. En réalité c’est toujours coûteux, car cette évolution se paie en complexité des architectures.

                              • Ciriaco Ciriaco 4 octobre 2017 13:42

                                @Ciriaco
                                *Désolé pour les erreurs de typo (à quand un bouton edit sur AV !).

Ajouter une réaction

Pour réagir, identifiez-vous avec votre login / mot de passe, en haut à droite de cette page

Si vous n'avez pas de login / mot de passe, vous devez vous inscrire ici.


FAIRE UN DON



Publicité



Les thématiques de l'article


Palmarès



Publicité