您的位置 首页 > 数码极客

【pascal编译系统属于】这个世界上有终极编程语言吗?

【新支持指南】有20年编程经验的资深程序员通过多年的经验总结了程序员的编程语言转换规律,制作了主流编程语言的高级流程图,说明了各种编程语言之间的关系、程序员选择编程语言的方向和途径。(威廉莎士比亚,程序员,程序员,程序员,程序员,程序员,程序员,程序员。

铁头程序员,流水的编程语言。时代在发展,编程语言也在与时俱进,不断出现新的、更好的、更流行的语言,程序员也会主动或被动地学习新的、“更好的”编程语言。

Tailscale_io联合创始人Avery Pennarun是具有20年编程经验的高级程序员,他通过多年的经验总结了程序员编程语言转换的规律,制作了主流编程语言的高级流程图,展示了各种编程语言之间的关系、程序员选择编程语言的方向和路径。

Avery这个人就像小说、人物报道的典型程序员一样,有点偏执和可笑。做过7年的Debian开发,也许这段经历能说明一些问题。由于Avery的履历广泛,我们也可以从这篇文章中了解到编程语言发展过程中有趣的历史传承。

注:本文观点具有强烈的主观倾向,新支持的读者中有些人持有不同意见,赞成、反对或反对,欢迎大家用评论提出自己的意见!

我们可以看到画中总共有四条主线。

低级语言,即编辑和C、商业或教育语言,即专门为数学和科学开发的基本语言,即R的脚本、粘合剂语言,也就是Shell,可以说这幅画缺少HTML、CSS、Haskell和Lisp。因为艾弗里。

Avery最初提到,四种语言有比较明确的界限。子程序编程程序员用C、汇编或Turbo Pascal,商用大型程序员用VB(当然,当时的“大型”和现在的“大型”根本不是一个量级),数值计算人员用Fortran、R或MATLAB,胶水编程用Shell。

程序员不使用Perl写操作系统,也不乘以VB写数。现代语言模糊了相互之间的界限,很多R写的程序也可以用python实现。语言之间的转换主要在于选择不同的风格。

低级编程语言

先来看看传说中的汇编。虽然通过汇款编写程序相当困难,但在人工智能蓬勃发展的今天,在某些场景中编辑仍然是不可替代的最佳编程语言,所有编译语言的代码都将转换为汇编或机器语言。(大卫亚设)。

从编辑开始出现了三种,风格上有明显的差异,但我们先来看看C。(大卫亚设,Northern Exposure)帕斯卡说:begin.以“end”为特点。c使用{}。花括号的风格影响了后代的很多语言,但也有不少程序员群体不喜欢花括号。

而且C有魔法。一旦开始使用,就容易形成习惯。不管最终效率如何,总想用C来实现一切。(大卫亚设,Northern Exposure(美国电视),成功)和C是能够合理实现上述所有四种类型编程问题的为数不多的语言之一,速度也不错。

往下c是c和python 2。C名字看起来像C的高级,但风格大不相同。“Avery Togo”写C是因为很多做商业大型程序开发的程序员没有选择。

胶水编程容易多了,直接启动Python 2吧。python很慢,但同时代的Perl也被包围了很多。但是作为C语言选手,艾弗里认为Avery的语法风格只能用怪诞来形容。相比之下,更接近C的python显然是更好的选择。

a6765afcce63bf3?from=detail&index=5" width="640" height="420"/>

不需要花费太多精力就能很快适应Python的语法;在Python里调用C函数的成本比Java以及其他语言低多了!唯一的缺点就是慢,但你可以调用C模块来缓解啊。

后来Java出现了,大批C和C++程序员迅速投入Java怀抱,以至于很长一段时间Java都霸占着编程语言No 1的位子。

Java的缺点是运行时很慢,然而相比C++超慢的编译速度、让人头大的header文件、超弱的跨平台性…这点缺点不算什么了。

Go刚出现的时候,有人称其为C++和Java的终结者,结果并没有。Avery说,想当年Go最辉煌的那阵子是因为Python 2程序员发现它跑的比Python快,RAM占用比Python少,写代码的难度相当。

虽然现在认为Go是一门“系统”语言,但Avery认为本质上,Go其实还是一个胶水儿语言。

商用编程语言

BASIC是基于让“新手能够轻松掌握”的目的开发的,但是学院派发现有BASIC编程经验的学生,很难教好他编程,这实在是有点讽刺。当然他们也没选择C,而是选择了更适合教学用的Pascal。

后来微软将BASIC转变成Visual Basic,这可能是JS出现之前最受欢迎的编程语言了。选择我们仍然在Excel中使用VB,只不过它改名叫宏。

后来Turbo Pascal的作者创建了一门新的语言Delphi,口碑很不错,再后来还开发了C#。相反,VB.NET则可以说是非常失败了。

Avery还不忘给出很有杀伤力一击:我其实很想在VB后面再加一个箭头,但不好意思,我的确不知道这帮程序员后来去哪儿了。可能转行做网页了?或者去搞Excel的宏?

胶水编程语言

Avery说,胶水语言的鼻祖要数Unix的Shell。Unix的设计哲学倡导一次只做一件事,并将其做到极致。这些功能单一、但是极致好用的小模块,通过pipeline链接起来,就能合力完成一件复杂的“大任务”,颇有点蚂蚁群的味道。

理想虽然美好,无奈败给了现实,这样看成完美的小程序模块很难实现。于是有了awk,一个和C语法相似的解释语言。

接下来有了Perl,Perl对互联网的兴起起到了非常大的推动作用,同时也借助互联网Perl收获了超赞的口碑。人们使用Perl来运行web的CGI脚本,接受HTML请求,然后进行解析。

你知道Perl最让人印象深刻的是什么吗?让人眼花缭乱的标点符号!

当然,你之砒霜可能是他人之良药。有人觉得Perl语法丑陋(比如Avery),那么他可能之后会选择使用Python;相反,有人爱死Perl的风格,那么可能会选择Ruby。

所以,如果你还在用Perl写Web CGI脚本,那么请继续吧;或者,你可以考虑一下“全世界最好的语言”PHP。

前端编程语言

JavaScript是一门编程语言,现在应该已经是一个不争的事实了。然而,Avery指出,正因为JS是一个大杂烩,把HTML、CSS、面向对象、函数式编程、动态语言、JIT等等所有涉及到HTML请求的概念,统统囊括进来,导致这个语言特别丑。

而且你能相信一门在20多年前,仅仅花了10天时间就做出来的语言吗?显然它存在着很大的缺陷和一些无法修复的严重错误。

我们回头再看这张图,注意一下右下角Python 3和JS:

你会看到Python和JS形成了一个循环。为什么会这两个会出现纠缠反复呢?Avery说因为用JS久了容易变得不正常,需要通过Python治疗一下。(hmmmm...)

接下来的TypeScript,可能因为作者是Delphi的开发者,Avery对TypeScript给予了很高的评价。

在node.js出现之前,JS被认为就是一门前端语言。而现在成为了一门前端+后端+命令行的一条龙语言。

最后,Avery也没放过Python 3。他说在Python 3中编写系统程序,你会发现自己经常搞乱unicode转换,甚至连文件名都会搞乱!

善有善报,恶有恶报。

参考链接:

关于作者: luda

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐