语言相对论 语言的想法是我们思考的方式。我的问题是,多少,在多大程度上适用于编程?

  • 某些本地的自然语言是否比其他人更适合思考编程?例如,以下内容是否可以用非英语语言更简洁? 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.
  • 讲中文的程序员是否以与英语说话的程序员的镜头看待编程,或者当两者都沉浸在主题中时,差异会消失?
  • 是否有些编程语言和域更容易在一种语言或另一种语言中思考。例如,如果您是日语,那就更容易拿起Ruby Ruby的创造者 是日语吗?

请注意,这个问题不是专注于“编程语言如何影响人们对编程的方式”,而是“如何影响” 自然 语言影响人们对编程的思考方式”。

为了摆脱它,一种显然具有务实优势的语言是 英语. 。我认为优势与选择英语关键字这样的编程语言无关 if, for, while, , 和 do, ,就像不说意大利语的音乐家不会被诸如此类 长处. 。它与与其他程序员的想法的交流有关,因为如今,英语是弗朗卡(Lingua Franca),至少在编程世界中。例如,要在Stackoverflow中提出一个问题,您确实需要了解英语,并且如果您想要良好的答案,就非常了解它。尽管这听起来像是一种帝国主义的态度,但实际上这确实是正确的。

除此之外,语言的内在属性如何影响说话的程序员如何看待数据结构,算法等?谈论逻辑和编程时,是否有任何语言特别简洁,使这些语言的母语者更快地思考?

有帮助吗?

解决方案

啊,萨皮尔·沃夫假设与乔姆斯基深层结构假设战争...

编程是数学。数学是应用哲学。然后,这个问题就变成了,自然语言可以准确地描述数学概念而无需大量的头部抓手。换句话说,哪种语言可以轻松地处理亚里士多德形而上学?

众所周知的“野蛮”语言可能 最初的 难以表达所需的一阶抽象。然而- 然而! - 人类可以学习新单词和新概念。古希腊没有从哲学上开始。它们必须被发明,然后移植到其他Langauges。

考虑到数学是普遍的,我假设强有力的Sapir-Whorf假设是错误的。

其他提示

我不知道任何特定的自然语言都可以更好地编程(拉丁语除外?)。我知道知道 多一种语言 非常强大。

Dijkstra在他的最后一次采访中说(如CACM第53卷第8期,第44页):

单语言的人和至少对第二语言了解的人之间存在巨大差异,因为这使您对总体语言结构更加意识到。您会发现某些语言无法翻译的某些构造。

土耳其 是一种非常有趣的语言,因为它具有严格的规则,没有例外(我知道),几乎是完全无冗余的,没有语法性别,并且在言语上可以表达和英语中的句子一样多。

过去“ÇekoslovakyLaştıramadıklarımızdanMısınız?”这意味着“您是我们不像捷克斯洛伐克的人之一?”非常受欢迎,被认为是土耳其语中最长的词。但是,这个问题后缀(在这种情况下为mısınız)是单独编写的,因此尽管这是一个单词,但在写这个词时似乎是两个单词。同样,可以轻松地制作此词的较长版本,例如“çekoslovakylaştırabildiklerimizdenMiydiniz?”。由于这些原因,这个词失去了普及,但在土耳其仍然是流行的舌头扭曲。

在土耳其语中谈论我想实现的目标,要传播的信息以及使用什么单词使用的内容。

编辑
当然,土耳其语有代表生物学性别的言语。但是它没有分离为他/她/它 - 在土耳其“ o”中。

或者在西班牙语中,您会说“ Profesor/Profesora”和德语“ Lehrer/Lehrerin”。在土耳其语中,您必须使用额外的单词来指示性别 - 类似于英语。
在土耳其老师中是Öğretmen。要指出一位女老师,您会说“Kadınöğretmen” - 女老师。但是尽管有德国人,但如果没有添加“ -in” - 默认值是男性,那么Öğretmen没有性别,因为没有。

土耳其语中无法使用的另一件事是诸如“ el/la”,“ the”,“ der/de/die/das”之类的文章,因为它通常只是上下文已获得的信息。
但是,有一些词可以表达“这个”,“ este/esta”,“ diese/dieses/diese”,例如“ bu”。
这是额外的信息,因为它指向某个对象。

我认为,您使用的编程语言更有可能塑造您在思考问题,变量和班级名称等的方式只是代表某物的字符。尽管不同文化中的程序员很可能会因为他们的口语和他们所学的方式而考虑不同的编程。

我认为,在谈论您试图通过代码实现的方法或想法时,自然语言并不重要(或至少不重要)。

正如您所说的,在使用代码本身并编写文档时 关于代码 英语是最合适的。但是,因为代码本身只是一个 手工, ,程序员/计算机科学家的真正优势在于用思想,算法和这些内容 - 然后,这些内容所描述的语言对实际内容完全不重要。

这是我在某个时候非常感兴趣的话题,因此(现在)的悲伤甚至是我当时没有的书签。

我确实保存了一个链接,前几天我偶然发现了 不同的语言等于不同的现实吗? 这在某种程度上进行了分类(也请阅读评论)。有些很有趣。

无论如何 ...

英语实际上是非常有效和简洁的。转化为大多数语言会想到 更长的表达.

也普遍认为有 没有原始的自然语言. 。活跃使用中的所有自然语言都具有相等的表现力。这并不是说想法不是由语言形成的,但我认为自然语言不是很大的影响力。

许可以下: CC-BY-SA归因
scroll top