哪种自然语言在编程方面具有优势?[关闭]


21

语言相对论是语言塑造我们思维方式的想法。我的问题是,这在编程中适用于多少程度?

  • 某些自然语言是否比其他语言更适合于考虑编程?例如,以下内容可以用非英语更简洁地陈述吗? 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 吗?

请注意,此问题不是针对“编程语言如何影响人们对编程的思维方式”,而是“ 自然语言如何影响人们对编程的思维方式”。

为了避免这种情况,英语显然具有实用的优势。我觉得优势已经不大用编程语言选择英文关键字,比如ifforwhile,和do,就像谁也不说话意大利音乐家不喜欢的话绊倒的拿手好戏。它更多地与与其他程序员的思想交流有关,因为如今至少在编程世界中,英语已成为当今的通用语言。例如,要在StackOverflow中提出问题,您确实需要懂英语,并且如果您想要好的答案,也应该很好地了解英语。尽管这听起来像是帝国主义的态度,但实际上确实是这样。

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


2
您可以非常简单地向任何合格的程序员说明这一点。Implement quick sort
乔什·K

Answers:


3

啊,Sapir-Whorf假设与Chomsky Deep Structure假设之战...

编程是数学。数学是应用哲学。接下来的问题是,哪种自然语言可以准确地描述数学概念,而无需费神。换句话说,哪种语言可以轻松地处理亚里斯多德的形而上学?

众所周知的“野蛮”语言在表达所需的一阶抽象时可能会遇到最初的困难。However- 但是!-人类可以学习新单词和新概念。古希腊不是从哲学术语开始的。他们必须被发明,然后移植到其他语言中。

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


“数学是应用哲学”的解释吗?
Frank Shearar

1
@弗兰克:从历史上看就是这样。当您粗略查看“数学基础”时,很明显它是基于哲学的。例如,整个直觉主义者的论点。
保罗·内森

正如您所说,我不会说某些数学问题是哲学上的。在我看来,从说到“数学是应用哲学”到这是一个很大的飞跃。
Frank Shearar

@弗兰克:好吧,如果数学的基础是哲学的,那么似乎是从数学的基础衍生出来的也是哲学的。没有?是?
保罗·内森

1
@弗兰克:糟糕,是吗?我敢打赌,现在有些文科专业的学生正从他的拿铁咖啡中窃窃私语。:)
Paul Nathan 2010年

13

我不知道任何一种特定的自然语言都适合进行更好的编程(也许拉丁语除外)。我确实知道,不止一种语言是非常强大的。

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

一个会说一种语言的人和至少会精通第二种语言的人之间存在巨大的差异,因为这会使您对一般的语言结构更加了解。您会发现某些建筑用一种语言无法翻译。


6

土耳其语是一种非常有趣的语言,因为它有严格的规则,没有例外(我知道),几乎完全没有多余,没有语法性别,并且单词可以用英语表达尽可能多的句子。

过去的“Çekoslovakyalılaştıramadıklarımızdanmısınız?” 这意味着“您是我们无法与捷克斯洛伐克相像的人之一吗?” 在土耳其语中很受欢迎,是最长的单词。但是,问题后缀(在这种情况下为mısınız)是单独编写的,因此尽管它是一个单词,但在写单词时好像是两个单词。同样,可以很容易地使该词的更长的版本,例如“Çekoslovakyalılaştırabildiklerimizdenmiydiniz?”。由于这些原因,这个词失去了流行性,但在土耳其仍然是一个流行的绕口令。

用土耳其语交谈使我思考要实现的目标,要传输的信息,而不是要使用的单词。

编辑
土耳其语当然有代表生物性别的词语。但这并没有分隔成他/她/它—用土耳其语“ o”表示。

或用西班牙语说“ profesor / profesora”,用德语说“ Lehrer / Lehrerin”。在土耳其语中,您必须使用多余的词来表示性别-类似于英语。
在土耳其,老师是öğretmen。要指出一位女老师,您会说“kadınöğretmen”(女老师)。但是尽管有德语,但如果不加“ -in”将其女性化,则默认为男性,öğretmen没有性别,因为没有性别。

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


1
没有语法性,很少有土耳其人从哪里来?(顺便说一句,当我看到问题时,但在看这里之前,我想到了土耳其语。虽然我不说话,但我听说它有多规律。)
Randall Schulz 2010年

显然,Smalltalk的语法比英语更接近土耳其语:smalltalk.gnu.org/blog/zuluuuuuu/smalltalk-and-turkish
Frank Shearar 2010年

@弗兰克·希勒(Frank Shearer):是时候学习闲话了!
VikingoS说恢复Monica 2010年

@兰德尔·舒尔茨(Randall Schulz):你明白我的意思;)我总是把性别和性别混在一起……
维金戈斯说,莫妮卡

根据某些研究,我听说梵语是最像一种计算机语言的,可以谷歌搜索。我不确定这会是多么真实,但是由于梵文从未作为一种主流口语而起飞,而且由于它在学术界用于当时的技术研究很可能与今天的自然口语不同。土耳其语在我耳边听起来很甜蜜(只是听觉),但是如果所有这些和梵语都像编程语言的男孩那样说话,那将非常无聊。当被问到时,我想听到的最后一件事:“是男孩还是女孩?” 是是的”。
nawfal 2015年

2

我认为您使用的编程语言更有可能会影响您思考问题的方式,变量和类名等仅仅是代表某些东西的字符。尽管不同文化的程序员很可能会因为他们的口语和学习方式而对编程有所不同。


1

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

正如您自己说的那样,最适合使用代码本身并编写有关代码英语的文档。但是由于代码本身只是一门手工,程序员/计算机科学家的真正实力就在于具有思想,算法和诸如此类的东西,然后,描述这些东西所用的语言对于实际内容来说就完全不重要了。


0

这是我有时很感兴趣的一个话题,因此,我的悲伤(现在)更大,以至于我找不到当时的书签。

我确实保存了前几天偶然发现的链接,不同的语言等于不同的现实吗?它与切线有些切线(也请阅读注释)。有些很有趣。

无论如何 ...


-1

英语实际上是非常有效和简洁的。翻译成大多数语言将使想法表达的时间更长

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


我发现无论是书面还是口语,中文可能是我见过的最简洁的语言。翻译长度通常仅为英语的一半以上。
乔恩·普迪

4
但是符号复杂度不是更高吗?
Joeri Sebrechts

中文是您说的APL语言?:)
nawfal 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.