Developpez.com - Programmation

Le Club des Développeurs et IT Pro

Le premier langage de programmation en chinois classique au monde a un mois,

Et il a été créé par un étudiant

Le 2020-02-06 10:51:43, par Stan Adkens, Expert éminent sénior
Le tout premier langage de programmation du monde basé sur le chinois classique est officiellement né. Et bien qu’il ait été créé il y a seulement un mois, le langage de programmation a attiré de nombreux développeurs à l'utiliser pour écrire des dizaines de programmes, comme celui basé sur un ancien algorithme chinois de voyance. Il a été écrit par un étudiant de l'université Carnegie Mellon en décembre.

Lingdong Huang, à l’origine du langage, a profité de ses dernières semaines à l’université, avant la remise des diplômes, pour compléter les fonctions de base du nouveau langage de programmation baptisé wenyan-lang, après avoir eu l'idée du langage il y a environ un an. Il comprend un moteur de rendu qui peut afficher un programme d'une manière qui ressemble à des pages de textes chinois anciens, a rapporté le site Web de publication Spectrum.


« Je l'ai toujours repoussé et j'ai essayé de lire plus de livres en chinois classique. J'ai fini par décider que lire plus de livres n'était qu'un euphémisme pour désigner la tergiversation, et qu'il fallait simplement le mettre en œuvre », a expliqué Huang. « C'était la semaine des examens et il n'y avait pas de cours. Au lieu d'étudier, j'ai donc utilisé la majeure partie de mon temps libre pour implémenter wenyan-lang, en terminant la fonctionnalité de base en trois ou quatre jours ».

Selon le site Web, le développeur de ce nouveau langage a déjà conçu une peinture de paysage chinoise infinie générée par ordinateur. Il a également contribué à la création du premier et, jusqu'à présent, du seul opéra chinois généré par l'IA. En décembre dernier, il a obtenu un diplôme en informatique et en art à l'université Carnegie Mellon.

Ayant grandi à Shanghai, Huang a appris le chinois classique de base à l'école. « À l'adolescence, j'ai été fasciné par cette langue et j'ai lu d'autres livres en chinois classique tout seul », se souvient-il. « Actuellement, je lis le Huainanzi », une ancienne exploration chinoise de la philosophie et de l'art de gouverner, compilée à la cour du roi de Huainan au IIe siècle avant Jésus-Christ.

Selon Huang, il existe déjà des dizaines de programmes écrits dans le nouveau langage de programmation en chinois classique, dont la plupart sont écrits par d'autres personnes. Beaucoup de ces programmes sont basés sur d'anciens livres de mathématiques chinois, tels que la méthode de calcul de pi en mathématiciens à l'époque ancienne.

« Beaucoup d'entre eux sont des implémentations d'algorithmes mathématiques trouvés dans d'anciens livres de mathématiques chinois. Par exemple, pi_liuhui.wy recrée la façon dont le mathématicien Liu Hui, au 3e siècle après Jésus-Christ, a calculé pi. Crt.wy est le théorème du reste chinois en mathématique. Pascal_triangle.wy calcule le Triangle de Pascal, qui était décrit dans les livres chinois avant la découverte de Pascal », a dit le développeur chinois.

L'un des programmes favoris de Huang développé avec wenyan-lang, dit-il, « est divination.wy. C'est l'algorithme de voyance décrit dans le I-Ching », le plus ancien des classiques chinois. Il ajoute qu’il allait « l'implémenter moi-même, mais un contributeur enthousiaste m'a devancé ».

Lingdong Huang, le créateur de wenyan-lang


Mais comment s’est-il pris pour programmer en chinois classique ? Wenyan-lang utilise à la fois les caractères chinois traditionnels et la grammaire chinoise classique, et l'un des défis de développement du langage auquel Huang à été confronté a été la façon dont le chinois classique n'utilise pas d'espaces pour diviser les phrases en mots, « donc comment diviser une phrase est une tâche du lecteur et non de l'écrivain », dit Huang. Pour surmonter ce défi, Huang a fait remarquer que les langages de programmation ne possèdent qu'une quantité déterminée de mots-clés. Ainsi, wenyan-lang va du mot-clé le plus long au mot-clé le plus court dans chaque programme pour déchiffrer ce que veut le programmeur, « et ça marche », dit Huang.

Selon Spectrum, Huang dit avoir été surpris et enthousiasmé par le vif intérêt que les développeurs ont accordé au wenyan-lang. « Je pensais avoir fait beaucoup de projets sympas avant, mais celui-ci est en quelque sorte devenu particulièrement populaire en Chine », a-t-il dit.

« Avant, je travaillais surtout seul, à mon propre rythme, mais maintenant la collaboration est devenue cruciale », dit Huang. « En plus de cosigner du code, je dois examiner le code d'autres personnes, évaluer soigneusement chaque suggestion et décider si elles sont vraiment utiles pour le langage, ou écrire des réponses amicales pour expliquer pourquoi je ne pense pas ainsi si c'est le cas. Mais je pense que j'apprécie l'expérience, d'autant plus que j'ai une bande de contributeurs extraordinaires ».

Par son langage de programmation en chinois classique, Huang a ajouté un peu de diversité à la gamme des langages de programmation disponibles. Selon Spectrum, les contributeurs de wenyan-lang travaillent sur des transcompilateurs pour Python, Ruby, JavaScript, C++ et Java, sur des bibliothèques pour les graphiques et l'interface utilisateur graphique, ainsi que sur un site de bribes de code où les gens peuvent écrire et partager des morceaux de code. « Le plus important, c'est que nous cherchons des moyens de construire une communauté autour du langage », explique Huang. « Je pense que ce pourrait être un moment critique pour sa survie. Les gens ont l'enthousiasme initial, mais pour que le langage reste vivant, il faut qu'il y ait une communauté d'utilisateurs ».


Huang est également en train de travailler sur un guide d'introduction à la programmation en wenyan-lang qui est lui-même écrit en chinois classique, a rapporté la publication, et il dit l’avoir déjà achevé à environ 40 %. « Le public cible du livre peut être quelqu'un qui n'a aucune expérience préalable de la programmation. Cependant, je devrai le tester auprès du public susmentionné pour m'en assurer, car je crois que certaines idées qui me sont naturelles peuvent ne pas être évidentes pour quelqu'un qui débute dans la programmation », a-t-il ajouté.

Sur l’IDE en ligne, vous pouvez voir de nombreux exemples de programmes en action, tels qu’une machine de Turing universelle, un traceur d’ensembles de Mandelbrot, un résolveur de tours de Hanoi, etc. Que pensez-vous du tout premier langage en chinois classique ?

Source : Spectrum, IDE wy-lang

Et vous ?

Que pensez-vous de wenyan-lang ?

Lire aussi

Les développeurs chinois se plaignent du compilateur Ark de Huawei, un élément clé de HarmonyOS, ils estiment qu'il ne reflète pas les promesses du groupe et n'est même pas à moitié fini
Antitrust : des développeurs chinois portent plainte contre Apple, estimant être lésés par la politique de gestion de l'App Store en Chine
Huawei dépose une marque de système d'exploitation denommée Hongmeng OS, après les sanctions US
  Discussion forum
15 commentaires
  • micka132
    Expert confirmé
    Je suis complétement largué par les nouvelles technologies...Pour moi c'est du chinois !
  • mattdef
    Membre averti
    Envoyé par Refuznik
    Bof, j'en pense pas grand chose c'est surtout plus un passe temps que quelque chose d'utile.
    On a bien fait un langage en français et ça a été vite abandonné. LSE pour ceux qui ont connu.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1*CHANSON DES 99 BOUTEILLES DE BIERE
      2*PASCAL BOURGUIGNON, <PJB@INFORMATIMAGO.COM>, 2003
     10 FAIRE 20 POUR N&#8592;99 PAS -1 JUSQUA 1
     20 &STROF(N)
     30  AFFICHER['IL EST TEMPS D’’ALLER AU MAGASIN.',/]
     40 TERMINER
    100 PROCEDURE &STROF(N) LOCAL S1,S0;CHAINE S1,S0;S1&#8592;"S";S0&#8592;"S"
    110 SI N=2 ALORS S0&#8592;"" SINON SI N=1 ALORS DEBUT S1&#8592;"";S0&#8592;"" FIN
    120 AFFICHER[U,' BOUTEILLE',U,' DE BIERE SUR LE MUR.',/]N,S1
    130 AFFICHER[U,' BOUTEILLE',U,' DE BIERE.',/]N,S1
    140 AFFICHER['EN PRENDRE UNE, LA FAIRE PASSER.',/]
    150 AFFICHER[U,' BOUTEILLE',U,' DE BIERE SUR LE MUR.',2/]N-1,S0
    160 RETOUR

    Pas si vite ! Windev ça ne te dit rien ? C'est encore assez régulièrement utilisé en France et le WLangage est en français
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    SI EmailOuvreSession(USER, PASSWORD, "pop3.ifrance.fr", "smtp.ifrance.fr") = Vrai ALORS
    	NomUser = USER
    SINON
      	NomUser = ""
      	Erreur("Impossible d'établir la connexion")
    FIN
    
    // Initialise les composantes du mail
    Email.Expéditeur = "<user@pcsoft.fr>"	// L'expéditeur
    Email.Destinataire[1] = DESTINATAIRE	// Le destinataire
    Email.NbDestinataire = 1		// Le nombre de destinataires
    Email.Sujet = SUJET			// Le sujet
    Email.Message = TEXTE   		// Le corps du message
    Email.NbAttache = 0			// Le nombre de pièces attachées
    
    // Envoie le mail
    SI EmailEnvoieMessage(NomUser) = Faux ALORS
    	Erreur()
    FIN
  • Refuznik
    Membre éclairé
    Bof, j'en pense pas grand chose c'est surtout plus un passe temps que quelque chose d'utile.
    On a bien fait un langage en français et ça a été vite abandonné. LSE pour ceux qui ont connu.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    1*CHANSON DES 99 BOUTEILLES DE BIERE
      2*PASCAL BOURGUIGNON, <PJB@INFORMATIMAGO.COM>, 2003
     10 FAIRE 20 POUR N&#8592;99 PAS -1 JUSQUA 1
     20 &STROF(N)
     30  AFFICHER['IL EST TEMPS D’’ALLER AU MAGASIN.',/]
     40 TERMINER
    100 PROCEDURE &STROF(N) LOCAL S1,S0;CHAINE S1,S0;S1&#8592;"S";S0&#8592;"S"
    110 SI N=2 ALORS S0&#8592;"" SINON SI N=1 ALORS DEBUT S1&#8592;"";S0&#8592;"" FIN
    120 AFFICHER[U,' BOUTEILLE',U,' DE BIERE SUR LE MUR.',/]N,S1
    130 AFFICHER[U,' BOUTEILLE',U,' DE BIERE.',/]N,S1
    140 AFFICHER['EN PRENDRE UNE, LA FAIRE PASSER.',/]
    150 AFFICHER[U,' BOUTEILLE',U,' DE BIERE SUR LE MUR.',2/]N-1,S0
    160 RETOUR
  • eldran64
    Membre extrêmement actif
    Envoyé par xXxNeWgEnErAtIoN
    On a déjà le coronavirus alors si en plus de ça ils se mettent créer des virus informatiques en chinois
    La plupart de tes interventions sont des trolls purs qui se font juste enterrer, mais celle-ci m'a arraché un sourire quand même. C'est très con, mais ça m'a fait marrer

    Blague à part, il faudrait un cross compilateur vers un langage plus classique pour que leurs codes soient compréhensibles pour le reste de la planète.
  • jopopmk
    Membre expert
    Envoyé par mattdef
    Pas si vite ! Windev ça ne te dit rien ? C'est encore assez régulièrement utilisé en France et le WLangage est en français
    [..]
    Il me semble que le WLangage peut s'écrire en d'autres langues dont ... le chinois.
  • Ngork
    Membre expérimenté
    Imaginer un langage de programmation en chinois est quelque chose de plus complexe qu'un simple transcodage de mots-clefs.
    L'article en dit un mot et on perçoit des difficultés particulières ainsi qu'une volonté de créer un langage adapté à un mode de pensée différent plus qu'à des symboles différents.
    Cela me rappelle la nouvelle de Jack Vance : Les langages de Pao, dans lequel les populations sont façonnées par leur langage, les militaires ayant un langage basé sur les verbes d'action, les marchands ayant un langage flou, avec de longues circonlocutions et de nombreux qualificatifs, etc ... bon, c'est un peu extrême et caricatural, mais on peut envisager un lien entre le langage utilisé et le mode de pensée.
    A ce titre, un langage de programmation en chinois pourra peut-être apporter une nouvelle vision des choses et permettre des développements inattendus !
  • Kazh Du
    Membre confirmé
    Envoyé par Neckara
    La Chine est une ditacture avec une très grande population, il n'est donc pas impossible qu'elle impose progressivement ce langage de programmation…
    C'est sérieusement une crainte à avoir avec comme conséquence une isolation toujours plus grande de la population. Le code a beau avoir la possibilité d'être "compilé" en Javascript plus traditionnel, ça reste compliquer à utiliser pour d'autres programmeurs anglophones (vu avez vu le nom des variables ?). Bon après, ce qui ne m'aide pas c'est du JS et pour moi c'est DEJA du chinois

    Envoyé par Neckara
    si cela se produit dans le futur, j'espère qu'on n'aura pas tous à nous mettre au chinois pour dev.
    Aucune chance ! La démographie chinoise est en baisse, par contre la démographie Africaine est en pleine explosion. En 2050, la langue la plus parlée au monde sera... le français !
  • ParseCoder
    Membre averti
    De toute façon on va devoir bientôt tous apprendre le chinois ...
  • Neckara
    Inactif
    Envoyé par Steinvikel
    Le lien entre le langage, sa structure, son vocabulaire, et l'influence sur la pensée qui en découle, est un phénomène acté depuis bien des années maintenant, que l'on retrouve également dans le célèbre roman de George Orwell ("1984" à travers sa novlangue.
    Attention tout de même, beaucoup de choses qu'on nous a vendu pour une relation de causalité n'en étaient pas.

    Notamment, pour l'influence du vocabulaire sur la pensée, on cite souvent une expérience sur le bleuvert menée sur une tribut isolée. Cette étude avait des conclusions abusives et a été débunké quelques années plus tard. Ce qui ne l'empêche pas d'être toujours utilisée comme argument de nos jours.

    S'il est possible que le langage influence notre manière de penser, l'inverse est encore plus vrai.

    Il ne faut pas oublier cela sous peine d'arriver à des conclusions absurdes sur d'autres sujets, e.g. l'écriture inclusive.
  • Neckara
    Inactif
    Envoyé par micka132
    Je suis complétement largué par les nouvelles technologies...Pour moi c'est du chinois !
    Rhâaaa j'ai été trop lent !

    La Chine est une ditacture avec une très grande population, il n'est donc pas impossible qu'elle impose progressivement ce langage de programmation… si cela se produit dans le futur, j'espère qu'on n'aura pas tous à nous mettre au chinois pour dev.