加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

一图看懂编程语言迁移模式:终点站是Python、Go、JS

发布时间:2019-05-17 04:09:07 所属栏目:建站 来源:新智元
导读:有着20年编程经验的资深程序员,以自己多年来的经历,总结出程序员的编程语言切换规律,做了一个主流编程语言的进阶流程图,展示不同编程语言之间的承接关系、程序员选择编程语言的方向和路径。 铁打的程序员,流水的编程语言。时代在发展,编程语言也与时
副标题[/!--empirenews.page--]

一图看懂编程语言迁移模式:终点站是Python、Go、JS

有着20年编程经验的资深程序员,以自己多年来的经历,总结出程序员的编程语言切换规律,做了一个主流编程语言的进阶流程图,展示不同编程语言之间的承接关系、程序员选择编程语言的方向和路径。

铁打的程序员,流水的编程语言。时代在发展,编程语言也与时俱进,不断有新的、更好或者更时髦的语言出现,程序员也会或主动、或被动去学习一门新的、”更好“的编程语言。

Tailscale_io联合创始人Avery Pennarun,一位有着20年编程经验的资深程序员,以自己多年来的经历,总结出程序员的编程语言切换规律,做了一个主流编程语言的进阶流程图,展示不同编程语言之间的承接关系、程序员选择编程语言的方向和路径。

Avery这个人,很像是小说、人物报道里的典型程序员,有点偏执,喜欢搞怪。曾经做过7年的Debian开发,或许这段经历能够说明一些问题。因为Avery资历深涉猎广,我们也能够从这篇文章中,了解到编程语言发展过程的一些有趣的历史传承。

一图看懂编程语言迁移模式:终点站是Python、Go、JS

我们看到,图中总共有4条主线,分别是:

  1. 低级语言,即汇编和C那一支
  2. 商用或者教学用语言,即BASIC那一支
  3. 专为数学和科学开发的语言,即R那一支
  4. 脚本、胶水语言,即Shell那一支

或许有人会说这张图里缺少了HTML、CSS、Haskell和Lisp,这不重要,因为Avery并没打算展开去讲它们。

Avery提到,最初的时候,4类语言有一个比较明确的边界。低阶语言编程的程序员使用C,汇编或者Turbo Pascal,商用大型程序员使用VB(当然那个时候的“大型”,和现在的“大型”完全不在一个量级),数值计算人员使用Fortran,R或MATLAB,胶水编程使用Shell或Perl。

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

低级编程语言

先来看看传说中的汇编。用汇编写程序是相当困难的,但即使在人工智能蓬勃发展的今天,某些场景下汇编仍然是不可替代的最佳编程语言,而且,所有编译语言的代码都会被转成汇编或者机器语言。

一图看懂编程语言迁移模式:终点站是Python、Go、JS

从汇编开始出现了3个分支,在风格上有明显的差异,不过我们先看C这一支。Pascal特点是有"begin...end";而C是用{}。花括号的风格影响了后世很多语言,虽然讨厌花括号的程序员群体也不在少数。

而且C有一种魔力,一旦你开始使用就很容易形成一种习惯,不管最终的效率高低,你总会想用C去实现一切。而且C也是为数不多的能合理实现所有上述四类编程问题的语言之一,而且速度也还可以。

一图看懂编程语言迁移模式:终点站是Python、Go、JS

C再往下,是C++和Python 2。C++虽然名字看起来好像是C的进阶,然而风格却大不相同。Avery吐槽”用C++是因为很多做商用大型程序开发的程序员别无选择“。

一图看懂编程语言迁移模式:终点站是Python、Go、JS

而胶水编程就好办多了,直接上手Python 2。虽然Python很慢,同时代的Perl也有不少簇拥。但作为一名C语言选手,Avery认为Perl的语法风格只能用怪诞来形容。相比之下,更接近C的Python显然是更好的选择。

一图看懂编程语言迁移模式:终点站是Python、Go、JS

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

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

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

一图看懂编程语言迁移模式:终点站是Python、Go、JS

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

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

一图看懂编程语言迁移模式:终点站是Python、Go、JS

商用编程语言

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

一图看懂编程语言迁移模式:终点站是Python、Go、JS

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读