it-swarm.cn

为什么会有那么多编程语言?为什么仍在制作新语言?

为什么会有那么多编程语言?

尽管存在其他语言,是什么促使人们创建一种编程语言呢?

51
Moshe

编程语言不断发展

新的编程语言通常会从现有语言中学习,并以新的方式添加,删除和组合功能。有几种不同的范例,例如面向对象功能以及许多现代语言尝试将两者的功能融合在一起。

还有一些新的问题需要解决,例如多核CPU的增加。最常见的解决方案是线程,但是某些编程语言试图以不同的方式解决并发问题,例如演员模型。参见 Erlang-并发世界软件

37
Jonas

这是一个循环。您开始了一种新的语言,就可以自由摆脱前辈的所有不良语法和错误选择。在版本1中,该语言看起来很棒,因为它没有任何负担,并且可以完成工作。然后,在较新的版本中,您开始尝试可能无法使用的功能,或者从其他较新的语言中引入功能,这会使您的语法有些混乱。瞧,再经过几个版本之后,您就会意识到您的语言现在就像被替换的语言一样复杂,存在着愚蠢的语法问题和遗留的负担。突然间,您意识到,如果创建了new语言,就可以解决所有问题…….

23
RationalGeek

出于同样的原因,还有锤子,螺丝刀,手锯,带锯,手提凿岩机,撬棍和许多其他工具:并非每种语言都能完美地完成每项任务。一些语言针对特定的问题领域:R特别适合统计分析,C特别适合编写操作系统内核,Haskell特别适合于数学运算或财务计算,Erlang特别适合于并发编程等。

同样,出于同样的原因,衬衫具有不同的颜色:有些人喜欢一种语言的“风格”胜过另一种语言。

而且,当然,许多程序员发现发明一种新语言很有趣,只是为了看看会发生什么,或者也许是因为他们对语言有一定的了解,想摸索一下,或者尝试一些想法。

11
mipadi

因为它们都吮吸(一种或另一种方式)。

目前,我们已经创建了大约5000种语言来描述自然问题,但是没有一种语言可以用来编写程序(例如“英语”)。

除非有人找到一种创建可以用自然语言表达您可以在句子中表达的语言的编程语言,否则他们会不断前进。

8
Aaron Digulla

显然,创建一种新语言的一个重要动机是要取得比现有语言更好的东西。而且由于总有改进的余地,因此总会有新的语言。

商业利益是另一个重要原因。我认为,例如Microsoft能够提供满足各种需求的语言非常重要,因此公司和开发人员更喜欢他们的平台。

6
Carlos

旧版代码。如果您开始使用新语言,则更改旧语言时不必听/考虑所有投诉。即使每个人都同意新的实现更好,也不会破坏旧的代码。那里有很多旧代码。

6
JeffO

因为创建新语言很有趣 即使它们没有实际用途

神秘的编程语言(有时简称为esolang)是一种设计语言,旨在测试计算机编程语言设计的边界,作为概念的证明或作为笑话。

4
jk.

创建一种编程语言非常有趣。由于您不仅限于以前的要求,因此它接近纯粹的创意工作。实施起来并不难,因为如果您首先编写编译器,则可以始终编译为C并编译C代码以获得适当的性能。

当然,我们大多数人所拥有的好主意比我们想像的要少,因此,他们常常会感到失望或被原始设计师以外的任何人所喜爱。

考虑一下您知道的任何编程语言。您可以轻松地提出自己不喜欢的几件事,对吗?您大概知道如何解决这些问题。有了更多的推动力,假设您对编译器的构建了解很多(很多人都知道),那么您可能会开始设计甚至实现自己的。

3
David Thornley

快速简短答案

重塑轮子...当前趋势是什么...

无聊的长答案

许多人忘记了“另一种针对旧程序员的类似新语言”是“一种针对新程序员的简单新语言”。

我的意思是什么?

好吧,对于“几年”的程序员来说,Java或C#可能是现有Cobol(OO /过程)Basic C/C++的另一种编程语言,而对于“新”程序员来说,= Java或C#是新语言,而Cobol(OO /过程)Basic,C/C++对他们而言不存在,因此重新发明轮子已成为常事...

而且,如果技术上有新的趋势,人们可能会根据这种趋势开发出新的编程语言,例如用于Web和功能性编程的ecmascript/javascript ...

干杯。

2
umlcat

构建新的编程语言的原因很多,主要是因为有了新的编程范例,或者由于硬件的进步,人们开发了新的语言来利用诸如多任务处理等新的硬件功能。

就我而言,出于特殊原因,我通常会构建小型编译器(使用新的编程语言)。如果我分配游戏,并且我相信专门为游戏开发而设计的编程语言将导致更小的更快的代码和更快的开发周转,那么我就来构建它。到最后,事实证明它也可以用于其他通用编程。

我认为大多数创建编程语言的人都有一个特定的目标,有些人从一开始就为通用而创建。但大多数不是。

顺便说一句,我确实认为有太多的编程语言,但是总是会出现数百种新的编程语言。有些是出于娱乐目的,有些是出于利基目的,例如作为学校项目,或者出于其他数百个原因。迟早会有一种新的流行。它永远不会结束。

1
Sergio Fernandez

原因有很多,大多数是因为人们认为存在的东西并不容易解决某些问题。有些只是出于娱乐或学术目的。

我认为有一个可靠的论点,即如何设计完美的语言的问题尚未解决(也许永远不会解决)。因此,只要人们对什么才是伟大的语言有了新的想法,人们就会继续尝试。这些尝试中的一些会映射出诸如Erlang之类的很酷的新空间,而某些会失败,但是只要从失败中获悉某些东西也是可以的。

0
Zachary K

出于同样的原因,<whatever>太多了,我们继续创建新的<whatever>

例如,有十几个PHP MVC框架),但是人们总是会创建新的框架来满足特定的需求,避免依赖其他团队,或者只是尝试创建更好的框架。基本上,每种类型的工具或应用程序都适用。

这是一件非常好的事情,我认为每个人几乎都是双赢的。

0
Fosco

大学贡献了许多编程语言,爱立信(Erlang =爱立信语言),贝尔实验室(B和C语言),谷歌(几个月前的Go语言)等大型公司也做出了贡献。作为大学研究的一部分而写的许多书并没有太多使用。但是,有一些值得注意的例外。我想写自己的语言/编译器对学习CS理论或相关学科的人们来说是一个很好的博士论文。令我吃惊的是Python是最早诞生于各种程序员围绕一个想法的协作在线努力中的一种语言。

0
ixtmixilix