Je pense que le monde programme maintenant dans des langages de programmation basés sur l'anglais non seulement en raison de circonstances historiques / économiques, mais parce que la morphologie anglaise en particulier a certaines propriétés qui conviennent le mieux à la pensée algorithmique. Mais de toute façon, il serait intéressant d'entendre vos opinions à ce sujet, surtout si vous êtes vous-même multilingue.
J'ai vu quelques mentions de langues basées sur l'allemand (voir Plankalkul par exemple, en fait le tout premier langage de programmation que nous connaissons très peu, grâce à WW2), également une saveur basée sur le russe d'Algol qui existait dans les années 80 à moins sur papier, je ne sais pas si elle a jamais existé en binaire ou non. Les deux semblaient un peu lents car il y avait plus de mots raccourcis et d'abréviations étranges que de mots complets comme dans les langues basées sur EN. Donc, si vous connaissez d'autres PL basés sur les langues nationales, même complètement archaïques et sans pertinence aujourd'hui, purement théoriques ou autres, il serait intéressant de les examiner.
Et revenons à la question principale: alors qu'est-ce qui rend le langage de Shakespeare si bon pour la programmation?
(Il y a en fait une liste de langages de programmation non anglais sur Wikipédia (bien sûr, où d'autre?), Mais il serait intéressant d'entendre les opinions des locuteurs natifs de ces langues sur la façon dont un langage de programmation "national" donné se sent vraiment comme.)
la source
Réponses:
Avertissement: Ma langue maternelle est l'allemand.
Je ne pense pas qu'il y ait une raison pour laquelle l'anglais comme langue pour prendre des mots clés serait mieux que n'importe quelle autre langue naturelle. Je pense que c'est le seul langage très important en informatique, mais pas à cause des propriétés linguistiques, mais parce que la plupart des techniciens le parlent dans une certaine mesure, c'est la langue maternelle de quelques personnes importantes dans le domaine, la plupart des termes liés à la technologie sont déjà anglais, etc.
Mais puisque nous parlons de langages de programmation, pas de documentation / API / noms / etc, je dois m'opposer: les langages de programmation ne sont pas basés sur l'anglais - ou sur tout autre langage naturel, d'ailleurs. Les langages de programmation sont des langages formels. Ils utilisent, à des degrés divers, une poignée de mots (généralement) anglais. Certains essaient même d'imiter sa grammaire - mais échouent complètement à lire comme l'anglais. Pour ajouter l'insulte à l'injure, ils n'associent qu'un seul (dans de rares cas une poignée de) sens (s) à chaque mot qu'ils empruntent. Souvent, ce sens est très jargon-y, spécialisé ou basé sur une analogie discutable. Par conséquent, connaître la multitude de significations en langage naturel d'un mot emprunté au langage de programmation n'aide pas vraiment à comprendre le concept de programmation derrière le mot-clé. Des exemples du haut de ma tête:
array
,type
,goto
,class
,void
. (Fait amusant qui jailli à l' esprit que je relue la question: Tous ces, à l' exceptiongoto
, ont des traductions en allemand qui sont au plus un caractère plus:Feld
,Typ
,Klasse
,Leere
. Ils ont tous un son bizarre pour moi, mais c'est probablement une question d'habitude .)la source
L'anglais est la langue lingua franca de la programmation.
Du même article:
la source
La langue anglaise est favorable car:
Facilité de frappe. Vous pouvez utiliser un clavier standard. Je sais que cela ressemble à du "fumier de lama", mais avez-vous essayé de taper en chinois? Il y a des milliers de caractères et puisque le chinois n'a pas une technique de construction de "caractère" adéquate pour s'adapter au concept d'un clavier, il ne serait pas facile à apprendre pour un public mondial.
Les mots anglais raccourcis sont des symboles reconnaissables. Il n'est pas nécessaire d'apprendre toute la langue anglaise pour coder, donc les personnes extérieures à la langue peuvent apprendre rapidement.
L'Assemblée a utilisé de petits mots qui n'avaient pas de structure de phrase. Viennent ensuite les langues, comme COBOL et FORTRAN, qui tentent de s'adapter autant que possible à la structure des phrases en anglais. Les langages plus récents implémentaient davantage la dépendance aux symboles algébriques universels, car ils avaient une meilleure prévisibilité. (Dans COBOL, ajoutez X à Y, soustrayez Y de X, calculez Y = X + A; le calcul rend les instructions précédentes inutiles et réduit la complexité d'analyse du langage). Il ne me faudrait pas beaucoup plus pour considérer des langages comme C ++ comme plus symboliques que basés sur un langage. Il y a un peu de retour à la programmation basée sur les mots avec C #, mais c'est surtout pour avoir pris en charge les modèles de programmation populaires.
Conclusion:
En fin de compte, les périphériques se limitent à une langue basée sur les caractères (comme l'anglais). En outre, les langues occidentales prennent mieux en charge les concepts mathématiques (comme le concept de 0, entre autres; la Chine emprunte des chiffres au lieu de leur propre représentation des valeurs numériques, pour mieux transmettre les nombres, car elle est plus courte à écrire (en moyenne)). Outre les valeurs numériques, je considérerais les langages basés sur les symboles (chinois) comme mieux adaptés à la morphologie du langage de programmation que l'anglais, car la plupart des langages modernes utilisent déjà des symboles, et ce serait universellement équivalent à apprendre. Cependant, il faudrait imposer une structure de type C ++, avoir des blocs de symboles ne serait pas facile à lire pour la plupart des gens dans le monde.
la source
La seule raison pour laquelle l'anglais est largement utilisé dans l'informatique est qu'il se trouve être une langue très répandue en ce moment.
Si les ordinateurs avaient été inventés il y a 2000 ans, ils auraient utilisé le grec. S'ils avaient été inventés il y a 200 ans, ils auraient utilisé le français. S'ils auraient été inventés en 200 ans, ils utiliseraient probablement le chinois ...
la source
Voici quelques avantages que pourrait avoir un langage de programmation hypothétique s'il supposait simplement l'alphabet anglais-latin.
Toutes ces choses sont des problèmes qui n'ont toujours pas été correctement résolus sur tous les appareils. Par exemple, les titres de morceaux avec des signes diacritiques ne s'affichent pas correctement sur un certain nombre de lecteurs de musique
la source
étudiant
. Avec unicode, la première lettre peut être exprimée parU+00E9 LATIN SMALL LETTER E WITH ACUTE
ou elle peut êtree
suivieU+0301 COMBINING ACUTE ACCENT
. Si vous étiez l'auteur du compilateur pour l'un de ces langages, voudriez-vous prendre en charge le nommage des variables comme celui-ci? Comment traiteriez-vous exactement deux variables dans la même portée nommée\u00e9tudiant
ete\u0301tudiant
?Je ne suis pas sûr que les langages de programmation eux-mêmes bénéficient d'être basés sur l'anglais. En explication:
Donc, si l'anglais est avantageux pour les langages de programmation, ce serait en aidant à inciter plus de gens à utiliser le langage de programmation. À cet égard, voici quelques réflexions:
En résumant ces réflexions, je ne pense pas que l'anglais aide vraiment les langages de programmation de manière significative que la plupart des autres langages pourraient offrir - à part le fait que beaucoup de gens le parlent.
la source
À mon avis, l'anglais a simplement un vocabulaire technique et mathématique plus riche que de nombreuses autres langues (mais pas toutes). Les langues qui manquent d'un tel vocabulaire utilisent des mots d'emprunt anglais pour faire le travail. C'est à lui seul une raison incontournable pour orienter les langages de programmation vers l'anglais.
En ce qui concerne les langues qui ont un vocabulaire suffisamment riche pour décrire tout ce que nous devons décrire sans recourir constamment aux mots d'emprunt anglais, la tradition de l'anglais comme lingua franca (langue commune) pour les sciences est en soi convaincante, mais notre alphabet nous donne une autre petite jambe vers le haut:
la source
Pour une lecture amusante sur le contexte de la langue et comment nous finissons par grogner:
Stuff of Thought par Steven Pinker
Rappelez-vous, nous parlons de la construction du langage, pas de la façon dont nous communiquons les informations (pas un dans le même), j'ai travaillé avec du code où la langue principale des variables était entièrement en allemand (le code n'était pas moins facile à comprendre ). L'anglais n'a intrinsèquement rien de mieux adapté à la programmation, si nous nous éloignons directement de la façon dont notre langage est structuré, il est probablement pire que meilleur, et cela pourrait honnêtement être pour de nombreuses raisons:
Demander pourquoi les langages de programmation utilisent "l'anglais" revient à demander pourquoi le tableau périodique a toujours la lettre "W" identifiant le tungstène, la plupart des gens ne peuvent pas vous dire pourquoi à moins de connaître l'histoire. Et si vous voulez l'histoire des langages de programmation, nous devons revenir aux cartes perforées, aux instructions d'octets et à l'assemblage.
L'assembly n'a pas de constructions "anglaises" majeures mais il est aussi proche que possible du code machine sans se détester. De plus, tous les éléments structurels des langues de niveau supérieur peuvent et sont régulièrement implémentés par ceux d'entre nous assez fous pour en profiter. LD, MV, ST, BRA et le reste du jeu d'instructions ne ressemblent en rien à l'anglais, mais je peux le lire parfaitement et obtenir le sens complet.
Nous attribuons la même signification du LD ou du MV dans l'assemblage aux constructions de niveau supérieur, je n'ai pas besoin de savoir ce que signifie une variable, et dans de nombreux cas, elle ne le sera pas si elle est en anglais de toute façon à cause du # 2 dans ma liste. L'ensemble des identifiants comme int, str, enum et autres sont un moyen de dire avec quoi vous travaillez, pas plus. Si au lieu de l' int l'identifiant était seagull, nous saurions tous ce que seagull signifiait dans un contexte de codage, non pas parce qu'il est anglais, mais c'est ce que l'identifiant couvre.
TL; DR: Les langages de programmation, comme tout langage, ont besoin de formation pour comprendre. La raison pour laquelle leurs commandes sont en anglais au lieu de l'espagnol ou de l'allemand ou du russe est plus que probable ésotérique et historique que par une construction nécessaire de la langue anglaise étant plus ou moins adaptée aux identificateurs dans la construction du langage formel.
la source