Quel langage naturel a l'avantage en matière de programmation? [fermé]


21

La relativité linguistique est l'idée que le langage façonne notre façon de penser. Ma question est de savoir dans quelle mesure et dans quelle mesure cela s'applique-t-il à la programmation?

  • Certaines langues natives et naturelles sont-elles mieux adaptées à la programmation que d'autres? Par exemple, les éléments suivants peuvent-ils être énoncés de manière plus concise dans une langue autre que l'anglais? Select a pivot. Move all the items less than the pivot to one side of the list, and all the items greater than the pivot to the other side.
  • Un programmeur parlant chinois voit-il la programmation dans un objectif radicalement différent d'un programmeur parlant anglais, ou les différences s'estompent-elles lorsque les deux sont immergés dans le sujet?
  • Certains langages et domaines de programmation sont-ils plus faciles à penser dans une langue ou une autre? Par exemple, est-il plus facile de grogner Ruby si vous êtes japonais parce que le créateur de Ruby est japonais?

Notez que cette question n'est pas centrée sur "comment les langages de programmation affectent la façon dont les gens pensent de la programmation", mais plutôt "comment les langages naturels affectent la façon dont les gens pensent de la programmation".

Pour éviter cela, une langue qui a clairement un avantage pragmatique est l' anglais . Je pense que l'avantage a peu à voir avec les langages de programmation choix des mots clés anglais comme if, for, whileet do, tout comme les musiciens qui ne parlent pas l' italien ne sont pas trébuché par des mots tels que forte . Cela a plus à voir avec la communication d'idées avec d'autres programmeurs, car l'anglais est la lingua franca de nos jours, du moins dans le monde de la programmation. Par exemple, pour poser une question dans StackOverflow, vous devez vraiment connaître l'anglais et le connaître assez bien si vous voulez de bonnes réponses. Bien que cela ressemble à une attitude impérialiste, c'est vraiment vrai dans la pratique.

Cela mis à part, comment les propriétés intrinsèques des langages affectent-elles la façon dont les programmeurs qui les parlent pensent les structures de données, les algorithmes, etc.? Existe-t-il des langues particulièrement concises lorsqu'il s'agit de parler de logique et de programmation, permettant aux locuteurs natifs de ces langues de réfléchir plus rapidement?


2
Vous pouvez le dire très simplement à tout programmeur compétent. Implement quick sort.
Josh K

Réponses:


3

Ah, l'hypothèse Sapir-Whorf contre les guerres de l'hypothèse de la structure profonde de Chomsky ...

La programmation est mathématique. Les mathématiques sont une philosophie appliquée. La question devient alors de savoir quel langage naturel peut décrire exactement les concepts mathématiques sans se gratter la tête de manière significative. Autrement dit, quelles langues peuvent traiter facilement la métaphysique aristotélicienne?

Le langage proverbial «sauvage» peut avoir des difficultés initiales à exprimer les abstractions de premier ordre qui sont nécessaires. Cependant, cependant! - les humains peuvent apprendre de nouveaux mots et de nouveaux concepts. Le grec ancien n'a pas commencé avec des termes philosophiques; ils ont dû être inventés puis portés vers d'autres langages.

Étant donné que les mathématiques sont universelles, je postule que l'hypothèse forte de Sapir-Whorf est fausse.


"Les mathématiques sont une philosophie appliquée" Expliquez?
Frank Shearar

1
@Frank: Historiquement, c'était le cas. Lorsque vous jetez un coup d'œil rapide sur les «fondements des mathématiques», il devient assez évident qu'ils sont fondés philosophiquement. Par exemple, tout l'argument intuitionniste.
Paul Nathan

Je ne dirai pas que certaines questions mathématiques sont philosophiques, comme vous le dites. Cela me semble bien loin de dire que "les mathématiques sont une philosophie appliquée".
Frank Shearar

@Frank: eh bien, si les fondements des mathématiques sont philosophiques, il semblerait que ce qui est dérivé des fondations soit également philosophique. Non? Oui?
Paul Nathan

1
@Frank: Terrible, hein? Un major des arts libéraux ricane de son latte maintenant, je parie. :)
Paul Nathan

13

Je ne sais pas si un langage naturel particulier se prête à une meilleure programmation (sauf peut-être le latin?). Je sais que connaître plus d'une langue est assez puissant.

Dijkstra a déclaré dans l'une de ses dernières entrevues (telle que reproduite dans CACM Vol. 53 No. 8, p. 44):

Il y a une énorme différence entre quelqu'un qui est monolingue et quelqu'un qui connaît au moins bien une deuxième langue, car cela vous rend beaucoup plus conscient de la structure de la langue en général. Vous découvrirez que certaines constructions dans une langue que vous ne pouvez pas traduire.


6

Le turc est une langue très intéressante car il a des règles strictes sans exception (que je sache), est presque parfaitement sans redondance, n'a pas de genre grammatical et sur le mot peut exprimer autant qu'une phrase en anglais.

Dans le passé "Çekoslovakyalılaştıramadıklarımızdan mısınız?" ce qui signifie "Êtes-vous une de ces personnes à qui nous ne pouvions pas faire ressembler la Tchécoslovaquie?" était très populaire et accepté comme le plus long mot en turc. Cependant, les suffixes de question (mısınız dans ce cas) sont écrits séparément, donc bien que ce soit un mot, il semble que deux mots quand le mot est écrit. En outre, des versions plus longues de ce mot pourraient être facilement créées, telles que "Çekoslovakyalılaştırabildiklerimizden miydiniz?". Pour ces raisons, le mot a perdu sa popularité, mais il est toujours un tordeur de langue populaire en Turquie.

parler en turc me fait penser à ce que je veux réaliser, aux informations que je veux transmettre et moins aux mots à utiliser.

modifier
Bien sûr, le turc a des mots pour représenter le genre biologique. Mais il n'a pas de séparation en lui / elle - en "o" turc.

Ou en espagnol, vous diriez "profesor / profesora" et en allemand "Lehrer / Lehrerin". En turc, vous devez utiliser des mots supplémentaires pour indiquer le sexe - similaire à l'anglais.
En turc, l'enseignant est öğretmen. Pour désigner une enseignante, vous diriez «kadın öğretmen» - enseignante. Mais malgré l'allemand, où - s'il n'est pas féminisé en ajoutant un "-in" - le défaut est masculin, öğretmen n'a pas de sexe, comme il n'y en a pas.

Une autre chose qui n'est pas disponible en turc est des articles comme "el / la", "the", "der / die / das" - car ce ne sont généralement que des informations déjà disponibles par le contexte.
Mais il y a des mots pour exprimer "ceci", "este / esta", "diese / dieses / diese", par exemple "bu".
Il s'agit d'informations supplémentaires, car elles pointent sur un certain objet.


1
Sans le sexe grammatical, d'où viendront les petits turcs? (Au fait, quand j'ai vu la question mais avant de regarder ici, j'ai pensé au turc. Bien que je ne le parle pas, j'avais entendu parler de sa régularité.)
Randall Schulz

Apparemment, la syntaxe de Smalltalk est encore plus proche du turc que de l'anglais: smalltalk.gnu.org/blog/zuluuuuuu/smalltalk-and-turkish
Frank Shearar

@Frank Shearer: il est temps d'apprendre la petite conversation!
VikingoS dit Reinstate Monica

@Randall Schulz: U m'a eu;) Je mélange toujours le terme sexe et genre ...
VikingoS dit Reinstate Monica

J'ai entendu dire que le sanskrit est censé ressembler le plus à un langage informatique selon certaines études, vous pouvez le rechercher sur Google. Je ne sais pas à quel point cela peut être vrai, mais puisque le sanskrit n'a jamais décollé comme langue parlée dominante et aussi puisqu'il a été utilisé dans le monde universitaire pour des études techniques de l'époque, il est probable que cela ne ressemble pas aux langues parlées naturelles d'aujourd'hui. Le turc semble très doux à mes oreilles (juste sur le plan auditif) mais si tout cela et le sanskrit parlent comme des langages de programmation, ce serait très ennuyeux. La dernière chose que je veux entendre lorsqu'on lui a demandé: "est-ce un garçon ou une fille?" est "oui".
nawfal

2

Je pense qu'il est plus probable que le langage de programmation que vous utilisez façonnera la façon dont vous envisagez le problème, les noms de variable et de classe, etc., ne sont que des caractères représentant quelque chose. Bien qu'il soit très probable que les programmeurs de différentes cultures envisagent la programmation différemment en raison de leur langue parlée et de la façon dont ils ont appris.


1

À mon avis, le langage naturel n'a pas d'importance (ou du moins ne devrait pas avoir d'importance) lorsque vous parlez des méthodes ou des idées que vous essayez de réaliser avec votre code.

Comme vous l'avez dit vous-même, lorsque vous travaillez avec le code lui-même et que vous écrivez des documentations sur le code, l' anglais est le plus approprié. Mais comme le code lui-même n'est qu'un artisanat , la vraie force d'un programmeur / informaticien réside au-dessus qu'avec des idées, des algorithmes et de telles choses - et ensuite, le langage dans lequel ces choses sont décrites est complètement sans importance pour le contenu réel.


0

C'était un sujet qui m'intéressait beaucoup à un moment donné, donc mon chagrin encore plus grand (maintenant), que je ne trouve pas les signets que j'avais à l'époque.

J'ai enregistré un lien sur lequel je suis tombé l'autre jour : les langues différentes sont-elles égales aux réalités différentes? qui tangente quelque peu dessus (lire aussi les commentaires). Certains sont intéressants.

Quoi qu'il en soit ...


-1

L'anglais est en fait assez efficace et concis. La traduction dans la plupart des langues rendra l'idée plus longue à exprimer .

Il est également généralement admis qu'il n'y a pas de langues naturelles primitives . Toutes les langues naturelles en usage actif ont un niveau d'expressivité égal. Cela ne veut pas dire que les idées ne sont pas formées par le langage, mais je ne pense pas que le langage naturel ait une grande influence.


Je trouve que le chinois est probablement la langue la plus laconique que j'ai jamais rencontrée, tant à l'écrit qu'à l'oral. La longueur de la traduction est généralement un peu plus de la moitié de l'anglais.
Jon Purdy

4
Mais la complexité des symboles n'est-elle pas juste plus élevée?
Joeri Sebrechts

Le chinois est APL des langues parlées? :)
nawfal
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.