6.15 La programmation, c'est du grec pour moi... Littéralement - naver/lispe GitHub Wiki

Les Langages de programmation et l'anglais

English Version

Je me rappelle très bien de cette époque en janvier 1981, quand je mis pour la première fois les mains sur un ordinateur. La machine était accompagné d'un petit livret d'une cinquantaine de pages, rédigé en anglais, qui comprenait une description exhaustive du langage Basic.

Mais, mes connaissances dans la langue de Shakespeare étaient assez limitées à l'époque et je me heurtais à certaines difficultés pour interpréter nombre de descriptions de commandes.

Que pouvait donc bien être un «pixel» ?

Aucun dictionnaire de l'époque ne contenait ce genre de vocabulaire, mais fort heureusement pour moi, des magazines et des livres en français étaient disponibles qui fournissaient les explications et les exemples dont j'avais besoin pour pouvoir programmer mon ordinateur.

Mais cette expérience laissa en moi un sentiment bizarre, une sorte d'interrogation métaphysique. Pour les gens dont l'anglais n'est pas la langue maternelle, les mots réservés dans cette langue sont interprétés comme des symboles abstraits, comme une sorte d'arithmétique particulière qui s'enrichit de «verbes», selon le sens latin, dont la signification initiale se perd dans les arcanes de l'informatique.

if x < 10:
   x = x * 2

Lorsque je lis ces lignes de d'instructions, je bascule immédiatement dans un mode particulier où elles cessent d'être de l'anglais pour devenir autre chose: pour devenir du code.

Pour des enfants qui ne parlent pas anglais, il faut leur traduire dans un premier temps ces mots réservés, puis avec le temps ils finissent par leur donner une signification propre au langage informatique qu'ils apprennent, indépendante du sens initial.

Mais qu'en est-il pour quelqu'un dont c'est la langue maternelle? Comment un enfant anglophone interprète ces instructions lorsqu'il les lit pour la première fois ? A la différence, de l'enfant précédent, il n'a pas à effectuer une traduction de ces mots, mais il doit quand même leur donner une signification là aussi propre au langage informatique qu'il apprend.

Et pour les autres enfants, ceux qui vivent dans un alphabet différent, la marche doit être encore plus haute à priori.

Grec

Nous avons donc concocté avec un collègue Grec, Nikolaos Lagos, une petite expérience que nous vous soumettons aujourd'hui. Cet article est la suite de créer votre propre langage que j'ai publié il y a quelque temps.

Nous avons donc traduit la grammaire de notre Basic pour créer un nouveau langage basé sur la langue et l'alphabet grec. Il devient dès lors possible d'écrire de véritables programmes dans cet alphabet.

Ce collègue qui parle couramment français et anglais travaille depuis des années en informatique et a donc l'habitude de concevoir des programmes en Python ou en Java. Mais là il fut surpris de découvrir à quel point ce code lui semblait naturel, comme si les barrières de l'alphabet et la langue s'étaient dissoutes.

Le code est disponible ici: hellenica.

Voici par exemple la fonction factorielle écrite dans ce langage:

συνάρτηση παραγοντικό(α)
   αν α <> 1 τότε
      α * παραγοντικό(α-1)
   αλλιώς
      1
   τέλοςαν
τέλοςσυνάρτησης

que l'on peut contraster avec sa version française aussi disponible:

fonction fact(a)
   si a <> 1 alors
      a * fact(a-1)
   sinon
      1
   finsi
finfonction

Des Héllénophones distingués tiqueront peut-être sur le choix des mots réservés, mais le résultat est assez troublant. En effet, l'alphabet latin est un lointain descendant de l'alphabet grec ce qui amène l'oeil à s'égarer sur des formes familières sans en saisir le sens. La structure d'un programme informatique est bien là, mais sa compréhension nous échappe complètement, à nous qui ne parlons ni ne lisons le grec. On comprend mieux ainsi, à mon avis, ce qu'un Coréen ou un Japonais peu habitué à l'alphabet latin peut éprouver quand il commence la programmation.