Existe-t-il des langages de programmation disponibles et extensibles dans plusieurs langages naturels?
Par exemple, une version anglaise avec une do..while
boucle, une version espagnole avec une hacer..mientas
boucle, une version française avec un faire..pendant
et une version néerlandaise avec un doe..terwijl
.
Le seul «langage de programmation» auquel je puisse penser est ce type d'implémentation, c'est Microsoft VBA.
Question bonus: Pourquoi y a-t-il si peu de langages de programmation qui viennent en plusieurs langues?
multilingual
Martijn Burger
la source
la source
That's a reason why the languages are in English, not why there are no other languages, for example no "Java Indonesian" or "C++ Swahili"
- Parce que votre programme Java indonésien ne pourrait être maintenu que par des programmeurs indonésiens.String for;
en Java car ce serait un symbole exporté dans la classe. Et cela voudrait que je ne puisse pas nommer un champdoe
non plus parce que c'est dans la version néerlandaise etpublic class Deer { String buck; String doe; }
que ledoe
champ ne serait pas accessible. Tous les mots clés sont des mots réservés en Java. De mauvaises choses se produiraient dans les champs qui entrent en conflit avec des mots clés dans d'autres langues.Réponses:
Les noms de fonction dans les formules Excel sont localisés, où vous pouvez utiliser la formulation anglaise ou l'équivalent local.
Cela a conduit à d'innombrables occurrences de feuilles de calcul lorsque vous vous déplacez à travers les régions et les langues des utilisateurs. Il est également difficile de rechercher des informations sur les fonctionnalités, car la documentation locale est localisée et ne mentionne pas les noms anglais des choses, et inversement, demander à SO avec vos noms locaux n'a pratiquement aucun sens pour la plupart des lecteurs.
Les mots-clés doivent être considérés comme des surnoms opaques, qui se trouvent juste correspondre au sens des mots anglais utilisés pour les épeler. Il existe de nombreux programmeurs non anglophones qui ne savent pas ce que signifient la moitié de leurs mots clés.
la source
Au siècle précédent, notamment dans les années 1960-1970, il s'agissait de langages de programmation non basés sur l'anglais. En France, nous avions PAF & LSE avec des mots-clés à l'allure française. L'Allemagne de la Seconde Guerre mondiale avait Plankalküll de K.Zuze. En Union soviétique, A.Ershov a conçu certaines langues (par exemple Rapira ) avec des mots-clés russes. IIF PAF (conçu et mis en œuvre par mon défunt père quand j'étais bébé - début des années 1960) pourrait également être vendu avec des mots-clés anglais (ou russe, ou allemand). Et certaines langues, par exemple APL , n'avaient aucun mot-clé. Les autres langues ( PL / I ) n'avaient pas réservémots clés. Et vous pouvez redéfinir les mots clés avec des techniques de préprocesseur (par exemple aujourd'hui, en C,
#define si if
et#define sinon else
pour les étudiants français ...; des astuces macro- basées similaires sont possibles en PL / I ou même Common Lisp).Mais l' informatiquea été principalement développé dans un pays anglophone (les États-Unis). Les langages de programmation et leurs implémentations avaient donc des spécifications et une documentation en anglais et des mots-clés en anglais. Par conséquent, chaque développeur doit être capable de lire l'anglais technique, et il n'y a aucune valeur ajoutée à «localiser» le langage de programmation (et même, cela rend l'utilisation d'autres logiciels plus difficile, comme indiqué ailleurs). La domination technique et économique actuelle des pays anglophones exige que tous les ingénieurs lisent l'anglais aujourd'hui (je suis sûr que même les ingénieurs logiciels nord-coréens, chinois ou iraniens sont capables de lire la documentation en anglais et de lire le code avec des mots-clés et des identificateurs anglais) . Il n'y a donc plus assez de valeur ajoutée pour «localiser» un langage de programmation (sauf peut-être pour enseigner la programmation élémentaire aux lycéens).
De plus, l'anglais a de nombreux mots-clés courts (comparer
sinon
en français àelse
en anglais, oumettre
en français àput
en anglais), donc il y a un petit avantage à utiliser des mots-clés en anglais ....Peut-être que dans un siècle, la Chine pourrait devenir le principal pays de l'informatique et certains langages de programmation chinois pourraient prospérer. Nous ne savons pas ce qui se passerait alors ...
PS. La domination de l'anglais n'est pas spécifique à l'informatique. Même si le Royaume-Uni quitte l'Union européenne -le scénario du Brexit- , la langue officielle de facto de la CE resterait l'anglais (qui ne sera alors la langue d'aucun pays membre de l'UE) et les projets TIC H2020 sont écrits en anglais.
la source
Il y a de très bonnes raisons pour lesquelles les langages de programmation professionnels ne sont pas traduits.
1) Effort: Ce serait une tâche énorme de traduire une langue moderne. Prenez Java - ce serait une petite tâche de traduire les quelque 50 mots-clés, mais vous auriez également besoin de traduire la bibliothèque standard complète qui se compose de milliers de classes et de méthodes et de la documentation connexe.
2) Compatibilité: même si le langage de base et la bibliothèque de normes ont été traduits, vous ne pouvez toujours pas utiliser des bibliothèques et du code tiers qui n'ont pas été traduits. Les bibliothèques et le code tiers sont une partie importante de ce qui rend un langage attrayant et utile. Avec les versions traduites, chaque langue devrait démarrer l'écosystème pour chaque traduction à partir de zéro. Tout le monde serait pire.
3) De toute façon, les programmeurs doivent connaître l'anglais. Beaucoup de normes comme HTTP, CSS, HTML utilisent de toute façon la langue anglaise pour les identifiants. Ceux-ci ne peuvent pas être traduits car les mots sont intégrés dans la norme.
Étant donné que les programmeurs doivent de toute façon connaître l'anglais, il n'y aurait que des inconvénients et aucun avantage à créer des versions traduites des langages de programmation.
Cela dit, pour les langues destinées aux programmeurs occasionnels par opposition aux programmeurs professionnels, il pourrait être judicieux de créer des versions traduites. C'est le cas pour VBA et je pense qu'AppleScript existe également dans les versions traduites.
la source
Je ne connais pas d'autres langages, sauf peut-être une très ancienne version ésotérique de BASIC, qui a eu tendance à avoir beaucoup de faveurs étranges, donc je m'en tiendrai à la question bonus: pourquoi il y a si peu de langages de programmation traduits:
Je crois que c'est simplement une complexité supplémentaire dont les compilateurs et les implémenteurs de bibliothèques ne voient pas un grand besoin. Voici quelques raisons qui contribuent à mon avis.
Personnellement, j'adorerais que nous puissions travailler avec du code d'une manière plus structurée, dans un éditeur qui comprenait réellement le code tel qu'il est, des instructions, des instructions, etc. qui nous permettraient de faire beaucoup de choses intéressantes , peut-être même prendre en charge la traduction automatique. Pour tous ceux qui se demandent sur quoi je parle, consultez l'image et le navigateur de refactorisation de Smalltalk, et imaginez ce qu'il pourrait devenir s'il avait obtenu plus de traction.
la source
Si vous avez un langage défini en termes de "balises symboliques" à un niveau et de "désignateurs de balises de surface" à l'autre, avec des mappages bien définis entre eux, ce serait certainement possible.
Imaginez une langue où vous avez votre
if
,while
...do
,switch
et tous les autres mots - clés définis ( en quelque sorte) dans la norme, vous pouvez expédier les bibliothèques système dans « le format sous forme de jeton », avec code local écrit sous la forme non sous forme de jeton. Ensuite, le compilateur réel fonctionne sur la couche à jetons et que les choses soient bonnes.Cependant, ce n'est pas toute l'histoire. Vous vous retrouveriez toujours dans des situations où vous avez des bibliothèques obtenues d'un endroit qui n'est pas "la bibliothèque standard", interfacé par des noms de fonction. Et ceux-ci n'auraient pas de mappage canonique entre les langues et nécessiteraient soit une traduction dans une langue locale pour être bien utilisable, soit vous vous retrouvez avec un méli-mélo de langues dans votre code source.
la source
Toutes les réponses données sont d'excellentes réponses, mais je donnerai quand même mes deux cents.
Au début de l'informatique , la domination technique, culturelle et économique des États-Unis et du Royaume-Uni rendait logique la création des langues les plus réussies à l'aide de mots anglais.
Plus tard, à mesure que le logiciel devenait une industrie , il devenait également une entreprise mondiale. Ce n'est pas un secret qu'il y a moins de programmeurs que nécessaire, alors les éditeurs de logiciels, et en particulier les entreprises qui définissent l'industrie comme IBM, ont commencé à embaucher des programmeurs de toutes les régions du monde: Russie, Pakistan, Inde, France, Allemagne, Israël, etc. principalement pour programmer dans des langues déjà réussies à l'échelle mondiale qui étaient déjà basées sur l'anglais et créant également de nouvelles langues, et pour cette source disparate de programmeurs, la langue commune déjà existante était une meilleure solution que toute autre langue.
Plus récemment, le mouvement des logiciels libres et open source a fait de la création de logiciels une entreprise encore plus mondiale qu'auparavant. Certains projets de logiciels ouverts, y compris certaines plates-formes de programmation, langages et frameworks sont d'énormes projets impliquant des centaines de collaborateurs.
Quelle langue une personne d'Israël utiliserait-elle pour collaborer avec une personne du Sri Lanka? Très probablement, ils ne parlent pas ou ne lisent même pas la langue maternelle de l'autre. L'anglais vient donc à la rescousse.
Qu'on le veuille ou non, l' anglais est la langue des efforts mondiaux . Et pas parce que l'Amérique le pousse mais parce que le monde le tire.
Paraphrasant Jay Walker :
Voir la vidéo, "English Mania" .
Conclusion:
Les langages de programmation qui utilisent des langages différents continueront d'exister et continueront d'être inventés (comme Scratch basé sur des jetons graphiques), mais au moins dans un avenir prévisible, ils seront relativement peu nombreux.
la source
L'anglais est également une langue "sans accent", vous n'avez pas non plus de caractère étrange qui nécessite un encodage différent de l'ASCII. Je suis italien et parfois je rencontre des erreurs de codage si j'utilise une disposition de clavier italienne ou des caractères accentués comme àèéìòù. De plus "else" est traduit en "altrimenti", "en" est "dentro" ... ce serait frustrant.
la source