Quels sont les avantages des langages de programmation basés sur l'anglais? [fermé]


14

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.)


3
@Michael: Il a dit "je pense". Il exprime sa propre opinion. Vous vous demandez peut-être comment il en est arrivé à cette opinion, mais je ne pense pas qu'il ait besoin de citer une source. On peut le croire sur parole que s'il dit que c'est son opinion, c'est son opinion. De plus, il n'a pas dit qu'il n'y avait AUCUNE circonstance historique ou économique, seulement qu'il pensait que ce n'étaient pas les seuls facteurs, et il est plus intéressé à discuter des autres.
HedgeMage

1
@Michael: vous dites que "les ordinateurs ont été inventés et installés principalement dans les pays anglophones", maintenant c'est des circonstances historiques / économiques. Par exemple, nous pouvons évoquer la révolution industrielle du 19e siècle au Royaume-Uni (et tout l'empire en fait), ou la «fuite des cerveaux» pendant / après la Seconde Guerre mondiale aux États-Unis, ou que les États-Unis ont probablement eu le moins de pertes pendant la Seconde Guerre mondiale parmi les pays industrialisés, etc.
mojuba

3
Quelle que soit la langue utilisée, elle doit être grammaticalement neutre.
JeffO

1
@Jeff O: absolument, et pas seulement le sexe. Fondamentalement, tous vos verbes doivent être neutres, sinon vous finissez par penser sous quelle forme exacte (tendu, genre, etc.) le "faire" dans votre "pendant que ... faites ..." devrait être. La morphologie des verbes en anglais est tellement détendue par rapport à de nombreuses autres langues européennes que je pense que c'est, entre autres, ce qui rend l'anglais si bon pour la programmation.
mojuba

2
Nous pourrions également nous demander pourquoi l'italien fournit les mots clés de la musique pendant que nous y sommes. Il pourrait y avoir quelques idées là-bas.
David Thornley

Réponses:


17

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' exception goto, 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 .)


2
Le genre de classe signifie ce que cela signifie en anglais. Une «classe» définit un type, qui est une «classe d'objets». Vous pouvez dire que toutes les valeurs Int ou tous les enregistrements Personne appartiennent à une classe car ils partagent certaines fonctionnalités. Cependant, la plupart des programmeurs de type C ne pensent pas en termes catégoriques, donc "classe" signifie simplement "plan d'objet" pour eux.
CodexArcanum

7
Votre anglais est excellent btw
Allen

En tant que compatriote allemand, je dois dire que je suis totalement d'accord avec vous. Je pense que la raison principale est, comme vous l'avez mentionné, que l'anglais est la langue du monde informatique. Des gens du monde entier parlent, discutent et programment en anglais tous les jours - et donc presque chaque article pertinent est d'abord publié en anglais. Il en va de même pour les livres. De plus, la plupart des livres traduits en allemand lisent un peu mal. Certaines phrases et mots clés sont traduits. Cela tue totalement le flux .
mhr

Je suis tout à fait d'accord pour dire qu'essayer de décortiquer la grammaire anglaise dans les langages de programmation est une erreur complète. Je ne suis pas d'accord avec "ce sens est très jargon-y, spécialisé". En tant que locuteur natif anglais, décrire des concepts comme des analogues de termes préexistants est typique de la communication quotidienne. L'anglais comme langue est simplement interprété de manière lâche et très spécifique au contexte en général. Quant aux équivalents allemands, ce n'est pas une grosse surprise. L'anglais emprunte une grande partie de sa structure à l'allemand et une grande partie de son vocabulaire à d'autres langues. C'est comme la «viande mystérieuse» des langues naturelles.
Evan Plaice

@EvanPlaice Oui, on peut se demander à quel point ceux-ci ne sont pas vraiment naturels. Il y a clairement un certain mérite pour eux, sinon ils auraient été abolis il y a longtemps. Je ne peux pas juger s'ils aident généralement les anglophones natifs, je sais juste que l'équivalent (choisir la traduction la plus proche, puis construire des analogies équivalentes avec cette traduction) a tendance à créer de mauvaises associations dans le cerveau des élèves. Re traductions: Oui, il n'est pas surprenant qu'il y ait des mots similaires; Je visais la partie "il y avait plus de mots raccourcis et d'abréviations étranges que de mots entiers".

8

L'anglais est la langue lingua franca de la programmation.

Du même article:

Ce ne sont rien de plus que de grands hackers réalisant collectivement que s'en tenir à l'anglais pour une discussion technique facilite la tâche.


9
lingua franca - une expression latine qui (aujourd'hui) signifie français. Et pourtant, nous l'utilisons pour désigner l'anglais.

6
@Graham Lee: Aussi ironique que cela puisse être, cette expression signifie (comme un terme anglais emprunté) "une langue commune utilisée par des personnes d'horizons divers pour communiquer entre elles".
greyfade

Pourquoi l'italien est-il la langue de la notation musicale ou le latin la musique de la science? Pour la technologie, c'est l'anglais. Avec l'acceptation internationale comme «lingua franca», il est inévitable que l'anglais ait le vocabulaire spécifique à la technologie le plus étendu. Un vocabulaire riche est essentiel à une communication efficace (et universelle), donc les gens sont prêts à adopter la langue.
Evan Plaice

5

La langue anglaise est favorable car:

  1. Convient mieux aux restrictions des périphériques actuels.

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.

  1. Peut être transformé en non-mots qui sont également reconnaissables. L'anglais favorise les abréviations en raison de l'absence de symboles d'accentuation.

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.

  1. Et considérez que les langages de programmation courants comportent plus de symboles mathématiques et moins de mots.

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.


4
Il n'est pas nécessaire d'apprendre toute la langue anglaise pour coder, donc les personnes extérieures à la langue peuvent apprendre rapidement - cela ne semble pas être un bon argument: dans la science médicale, il y a beaucoup de mots latins, et vous n'avez pas besoin de connaître le latin pour étudier les sciences médicales.
mojuba

2
Ce que vous avez dit sur le chinois est faux. Le chinois peut être saisi avec un clavier standard.
grokus

2
@mojuba Pas ce que je voulais dire. Ce que je voulais dire, c'est que l'anglais est bon pour abréger les mots, MOV, cpystr, etc. Vous ne pouvez pas couper la moitié d'un symbole chinois, ou la moitié d'un mot japonais (qui est une combinaison de mots habituellement) et signifie la même chose. Alors que vous avez beaucoup d'espace pour raccourcir les mots anglais et transmettre la même signification. Je ne veux pas dire que d'autres professions n'incorporent pas de mots d'autres langues, je veux dire que la syntaxe du programme de mots peut être facilement simplifiée en jetons.
Lee Louviere

@grokus À moins que vous ne vouliez dire PinYin, vous ne pouvez pas saisir directement le chinois. Vous devez utiliser les touches ou utiliser PinYin et sélectionner le symbole correspondant le plus proche. Dans les deux cas, vous devez intégrer un processus de sélection car le clavier standard ne prend pas en charge les quatre tons chinois. À MOINS que vous modifiez le clavier standard, violant ainsi les exigences.
Lee Louviere

-1, 0 n'était pas un concept occidental (Mid-Orient d'abord), l'assemblage n'utilise pas du tout de mots (généralement basés sur des noms hors ligne / de registre, et des commandes de 3 à 5 caractères pour remplacer 0x86 étant LDA), structure anglaise tue la programmation parce que l'anglais a l'un des pires ensembles de structure dans les langues "occidentales". Les non-mots qui sont "reconnaissables" sont une idée spécifique à la localité et au sujet et peuvent être aussi mauvais qu'un ensemble de mots "non anglais" à comprendre. Toutes les langues sont symboliques, cela fait partie de la façon dont vous en faites un langage formel: int représente des entiers, Double représente des flotteurs à double précision ...
Jeff Langemeier

5

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 ...


3

Voici quelques avantages que pourrait avoir un langage de programmation hypothétique s'il supposait simplement l'alphabet anglais-latin.

  1. C'est un petit jeu de caractères (contrairement à dire Kanji)
  2. N'utilise généralement pas de signes diacritiques (contrairement au français, à l'espagnol, à l'allemand, etc.)
  3. Chaque majuscule a un minuscule (contrairement à l'Eszett allemand)
  4. Sa collation est simple

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


5
Je me demande si les ordinateurs ont été inventés en Chine, nous discuterions de la façon dont n'importe qui pourrait écrire du code qui n'était pas en chinois car tous les caractères permettent des noms plus courts.
CodexArcanum

3
Je ne suis pas d'accord. L'alphabet grec, par exemple, est aussi petit; les signes diacritiques auraient pu être supprimés pour la programmation en particulier, de même pour le ß allemand; le classement est de nos jours normalisé, c'est-à-dire amené à une forme "simple" pour l'informatique / les bases de données, etc. dans pratiquement toutes les langues existantes. Tout comme les articles anglais "the" et "a" ne sont pas utilisés ou évités en informatique, n'importe quelle autre langue aurait pu faire l'objet d'une optimisation.
mojuba

3
Je ne vois pas que les majuscules et les minuscules ont beaucoup à voir avec le langage de programmation.
David Thornley

1
@David Thornley ah mais pour un compilateur le programme est les données.
Conrad Frix

1
@Ingo, je ne sais pas ce que tu veux dire. Par exemple, supposons que j'utilise une variable nommée étudiant. Avec unicode, la première lettre peut être exprimée par U+00E9 LATIN SMALL LETTER E WITH ACUTEou elle peut être esuivie U+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 \u00e9tudiantet e\u0301tudiant?
Conrad Frix

2

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:

  • Le nom d'une méthode, de variables, d'objets, etc. n'a pas d'importance pour l'ordinateur
  • Le contenu d'un commentaire n'a pas d'importance pour un ordinateur
  • La logique de programmation est exprimable dans la plupart (et je suppose que TOUTES) les langues parlées.

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:

  • Beaucoup de gens dans les pays étrangers apprennent l'anglais, qu'ils souhaitent ou non programmer
  • Les personnes qui conçoivent un langage informatique et souhaitent que de nombreuses personnes l'utilisent choisissent généralement la langue parlée la plus connue pour le décrire.

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.


Intéressant que vous mentionniez des commentaires; J'ai travaillé pour une entreprise basée au Japon, où tous les fichiers C étaient stockés en Unicode car les commentaires étaient en japonais.
Mark Avenius

1

À 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:

  • L'anglais peut être représenté dans un jeu de caractères plus petit que, par exemple, les langues chinoises, japonaises, cyrilliques ou même romanes qui utilisent des caractères latins accentués.
  • L'alphabet anglais, en grande partie en raison de son absence totale de caractères accentués, est très clair visuellement. Nous avons suffisamment de bogues en raison de parenthèses incompatibles ou de points-virgules manquants, il serait insensé d'ajouter des problèmes de discernement entre 'ē', 'ĕ' et 'ě'.

3
Le vocabulaire technique anglais est riche car l'informatique a été principalement développée dans les pays anglophones, et non l'inverse. Une sorte de problème d'oeuf de poule vraiment;) Quant aux caractères accentués, point intéressant en effet.
mojuba

@mojuba, je ne suis pas d'accord. Le vocabulaire technique anglais est riche car les technologies antérieures aux ordinateurs ont été principalement développées en anglais. Ces technologies ont été développées en anglais pour des raisons principalement économiques, mais au moment où les ordinateurs sont arrivés, la langue anglaise était déjà apprêtée et prête.
HedgeMage

2
Pulchra est lingua Latina! ("La langue latine est belle!") Je parle en fait du latin classique et je me suis beaucoup amusé à l'utiliser dans mon code. Malheureusement, il se bloque constamment sur le bord d'être un langage mort, il n'est donc pas pratique de baser un langage de programmation. (Bien que maintenant, je suis tenté d'en concevoir une juste pour le plaisir.) Beaucoup de bonnes technologies proviennent de non-anglophones, mais pas suffisamment d'une langue pour correspondre au riche vocabulaire offert par l'anglais dans n'importe quelle langue qui répond également l'autre facteur que j'ai mentionné: un petit alphabet clair.
HedgeMage

1
@mojuba + HedgeMage, peu importe où les technologies sont développées, l'anglais est un tel méli-mélo de mots et de vocabulaire empruntés, que toute terminologie qui n'a pas été développée en anglais est rapidement intégrée dans la langue. Le principal avantage de Englishes est qu'il offre beaucoup de temps compliqué qui peut bien décrire finement les concepts abstraits, ce qui est très utile.
whatsisname

5
La langue anglaise est riche en raison de son habitude d'agresser d'autres langues dans des ruelles sombres et de voler tous leurs mots utiles. Ce n'est pas tant une source de mots de prêt qu'un bazar de mots.
David Thornley

1

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:

  1. Manque de structure (on peut mettre sujet / prédicat / noms / adjectifs où bon nous semble),
  2. Mutabilité de nos mots (nous avons l'impression de pouvoir abréger TOUT)
  3. BIG ONE: Quelqu'un qui parle couramment l'anglais n'aura pas une meilleure compréhension d'une section de code que quelqu'un qui ne comprend pas la langue anglaise.

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.