Qui a écrit la toute première ligne de code?

Et si la toute première ligne de code s’était exécutée toute seule? Et si cette ligne était à l’origine du Big Bang?

Le premier langage que j’ai appris, le français, est un langage humain et c’est bien normal puisque j’appartiens à cette espèce. Ce n’est que très tardivement que j’ai découvert les langages de programmation (à l’approche de la quarantaine…).

J’ai alors constaté qu’il existait des langages de bas niveau et de haut niveau. Et curieusement, haut niveau ne veut pas dire « réservé aux cracks de la ligne de code », bien au contraire! Un langage de haut niveau signifie que sa syntaxe est proche des langages humains et par conséquent, il est plus facile à apprendre. C’est le cas par exemple du langage Python. « Bonjour » se dit :

print("Bonjour") # en python

Je vous renvoie à cette page Wikipédia pour découvrir comment on dit « Hello World » dans des langages de programmation qualifiés de bas niveau.

C’est le langage C qui a engendré Python. Ce langage, né dans les années 70, est un langage de bas niveau, c’est-à dire plus proche du langage machine. Au-dessous, on trouve l’assembleur. C’est le dernier langage avant d’arriver à l’antre de la bête binaire, gardienne bicéphale du langage machine, le seul qu’un ordinateur est en mesure de comprendre, c’est-à dire une suite de 0 et de 1. Voilà comment on dit Bonjour! en langage machine:

0100001001101111011011100110101001101111011101010111001000100001

Vous pouvez faire l’essai avec un convertisseur et constatez par vous-même que ce que j’écris est vrai.

C’est illisible et absolument indigeste pour nous les humains et c’est bien la raison pour laquelle on a inventé les langages de programmation, tout simplement pour servir d’interface entre nous et les ordinateurs.

On connait le géniteur du langage Python. Il s’agit du Néerlandais Guido van Rossum, on connait ceux qui sont à l’origine du langage C : les compères Dennis Ritchie et Ken Thompson. Avec un minimum de recherche, on arrive à trouver le nom de celui qui est le père du premier langage assembleur, un dénommé Nathaniel Rochester… Mais qui a rédigé la première ligne de code en langage binaire? Qui est-il, ce mystérieux programmeur à l’origine de l’informatique? D’ailleurs, a-t-il jamais existé?

Peut-on concevoir que cette ligne se soit exécutée toute seule et qu’elle soit non pas à l’origine de l’informatique mais carrément à l’origine du Big Bang? Avant cette explosion primordiale, il y avait le Néant. C’est du moins ce que l’on suppose compte tenu du fait que nos lois de la physique nous empêchent de remonter au-delà du Big Bang. c’était le règne du zéro, le seul nombre à la fois réel, positif, négatif et imaginaire pur (source wikipédia), un nombre aux propriétés surnaturelles.

Or, il faut savoir que zéro élevé à la puissance zéro est égal non pas à la tête à Toto mais à 1

00 = 1

Ça veut dire quoi? Ça veut tout simplement dire que du néant, a jailli la matière.

Faites l’essai avec une calculatrice et vous constaterez que là encore, ce que je dis est vrai. C’est d’ailleurs le cas pour n’importe quel nombre élevé à la puissance 0. Par exemple, 20 = 1, 150 = 1. Petite démonstration:

  • 24 = 23 x 2
  • 23 = 22 x 2
  • 22 = 21 x 2
  • 21 = 20 x 2
  • 20 = 1

À partir de là, on peut hardiment supposer que le Big Bang n’est rien d’autre que le zéro primordial élevé à sa propre puissance. Notre univers existe parce qu’il n’avait pas le choix. Par la force du zéro (le néant), il ne pouvait que donner naissance au 1 (la matière). Les implications de cette théorie sont terribles puisqu’il n’est pas exclu que notre univers ait pu se passer de Dieu pour voir le jour. Cela ne signifie pas que Dieu n’existe pas mais cela signifie que ce dernier n’est peut-être pas à l’origine de la naissance de l’Univers. Ce n’est pas sa création et il n’a aucune emprise sur cette dernière.

big_bang

Après que le zéro eut engendré le 1, les deux se sont accouplés pour donner naissance au 2 (c’est-à dire 10 en langage binaire). Puis le 3 a vu le jour suivi du 4, etc… Tout s’est enchaîné dans une inflation aussi fulgurante que celle qui a frappé le Zimbabwe en son temps.

Vous savez pourquoi je vous parle de ça? Parce que pas plus tard qu’hier, je suis tombé sur un livre que j’avais lu il y a quelques années. Il s’intitule Avant le Big Bang et ses auteurs sont les célèbres frères Bogdanov. Il y avait justement tout un passage sur ce 00 = 1 et ça m’avait quelque peu interpellé. D’aucuns pensent que ces deux gugusses ne sont que des bonimenteurs de foire et malheureusement je ne peux pas les contredire car je n’ai pas un bagage astrophysique suffisant pour démêler le vrai du faux dans cette histoire. Tout ce que je peux dire, c’est que malgré leurs supposées approximations scientifiques, ce sont des vulgarisateurs hors pair et je trouve que c’est une qualité qui n’est pas donnée à tout le monde. Je me souviens également avec nostalgie de Temps X, émission qui a marqué mon enfance.

La création du monde reste un insondable mystère mais il n’est pas interdit de penser qu’elle est le fruit du tout premier programme informatique jamais exécuté (00 = 1), celui qui a également donné naissance au langage binaire.

Auteur : Ordinosor

Bienvenue sur Miamondo, mon blog personnel. "Mia mondo", c'est de l'espéranto et ça signifie "Mon monde" en français. Je m'appelle Benoît alias Ordinosor, Français expatrié en Allemagne. Mes centres d'intérêt sont les distributions GNU/Linux, le langage de programmation Python, la science-fiction et l'espéranto.

3 réflexions sur « Qui a écrit la toute première ligne de code? »

  1. Il faut probablement chercher du côté de Konrad Zuse, concepteur du Z3, aujourd’hui considéré comme la première machine binaire programmable.

    D’autres ont sans doute écrit des programmes binaires avant, mais ils étaient alors inscrits directement dans le matériel de la machine, et non pas programmés dans une mémoire dynamique.

    Et avant ça, il y a eu des machines programmables mais ne fonctionnant pas en binaire. On écrivait donc pour elles des programmes en langage machine, mais qui n’étaient pas représentés sous forme binaire.

    Et des programmes ont même été écrits dans des langages (ou des pseudo-langages) de plus haut niveau avant qu’existe le matériel permettant de les exécuter. Le fameux algorithme écrit par Ada Lovelace en 1842 n’a ainsi jamais été exécuté sur la machine pour laquelle il a été écrit, puisque cette machine n’a jamais été fabriquée. On peut considérer qu’elle avait écrit cet algorithme en langage « haut niveau » et l’avait « compilé » elle même en langage machine, puisque son document donnait l’algorithme en version lisible pour un humain et la retranscription de chaque ligne en instruction machine. Plus généralement, de nombreux travaux mathématiques ne sont autre que des programmes écrits en langage mathématique, un langage somme toute assez similaire à un langage de programmation de très haut niveau.

    J'aime

    1. Bonjour,

      Quelle déception d’apprendre que les premières lignes de code ont été écrites et exécutées par des êtres humains! 😉

      Plus sérieusement, merci pour toutes ces précisions. Je ne connaissais pas Konrad Zuse mais j’avais entendu parler d’Ada Lovelace. Sa fiche wikipédia dit qu’elle peut être considérée comme la première programmeuse de l’histoire. C’est curieux car on a le sentiment que les femmes sont loin de constituer la majorité dans l’univers de la programmation. Me trompé-je? Dans sa fiche wikipédia, il est écrit « premier programmeur du monde ». Je me suis permis de corriger cette indélicatesse en utilisant le mot « programmeuse » mais l’absence de version féminine officielle est bien révélatrice du fait qu’il existe encore des domaines plus ou moins réservés.

      Je saute du coq à l’âne pour te dire que j’ai commencé à retravailler le code de « Mon jardin » sur mon dépôt framagit. Après une prise en main compliquée, je trouve cet outil génial! C’est carré et ça permet de bien s’organiser. Dès que je vois un bug ou que je pense à une idée d’amélioration, j’ouvre une nouvelle « issue ». Du reste, je me demande si cet onglet « issue » est uniquement réservée aux problèmes ou bien également aux idées d’amélioration. Moi personnellement, je l’utilise beaucoup comme un outil d’amélioration continue.
      Bon dimanche sous le soleil,
      Benoît

      J'aime

  2. « C’est curieux car on a le sentiment que les femmes sont loin de constituer la majorité dans l’univers de la programmation. »
    Tout a fait. Comme la plupart des métiers scientifiques, les métiers de l’informatique restent majoritairement masculins. Mais petit à petit, la situation s’améliore.

    « Du reste, je me demande si cet onglet « issue » est uniquement réservée aux problèmes ou bien également aux idées d’amélioration. »
    Ça peut s’utiliser pour les deux. La plupart des projets open-sources utilisent le même outil pour tracker les anomalies et les évolutions. Il y a par contre souvent une propriété sur les « fiches » pour indiquer s’il s’agit d’une anomalie ou d’une évolution. Ça n’a pas l’air d’être le cas sur framagit, mais tu peux utiliser les labels pour ajouter cette précision.
    Un truc bon à savoir aussi : lorsque tu envoie du code vers le repository, tu peux référencer dans le commentaire de commit le numéro de l’issue (sans doute en mettant une ligne du genre Issue#xx dans le commentaire… à vérifier dans la doc de framagit). Je te recommande vivement de le faire, car ça permet par la suite de faire facilement le lien entre une issue et ses impacts sur le code (tous les commits référençant l’issue seront listés sur la page de l’issue). Voir ici par exemple, où on voit sur l’issue des commentaires « machin pushed a commit that referenced this issue » : https://github.com/golang/go/issues/19857

    J’irai jeter un œil à la nouvelle version de ton code à l’occasion.

    J'aime

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s