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
, while
et 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?
la source
Implement quick sort
.Réponses:
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.
la source
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):
la source
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.
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.
la source
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.
la source
À 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.
la source
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 ...
la source
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.
la source