前几日,TIOBE 官方最新发布了 8 月的编程语言榜单:
除了“常青树”C 语言以外,其他语言的排名及变化同样值得关注:
Java 依旧流行,毕竟它是一种面向对象的语言,且常用在 Android 应用程序开发,所以目前仍被许多大公司用于大量的交易应用程序的构建。但由于出现了像 Kotlin 这样的编程语言(也适用于 Android 开发),Java 的流行度正在下降;
Python 的涨势更猛,根据谷歌趋势和 PyPI 流行指数,Python 俨然成为世界上最受欢迎的编程语言之一,尽管这离不开当下数据挖掘和人工智能行业的蓬勃发展;
Go 语言在 7 月排名上升至第 13 名后,本月又降至第 18 名;于去年同期相比,Swift 今年以来的市场份额一直呈下滑趋势;而 PHP 已连续 3 个月维持第 8 名的位置。
诚然,这个排行榜只能反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。但业内关于到底什么是最好的编程语言的讨论,一直没有停过。
这大可不必!虽然现如今编程语言多到遍地开花,可每一种编程语言的兴起都离不开它所适用的技术领域,二者相辅相成。与其非要争个排名的高低,不如我们去多看看多了解,努力提升眼界和实力,或许某天你自己实现的编程语言也有机会上榜。
当然,你也可以泼我冷水,认为“计算机语言已经很多了,我们会用就行,干嘛要自己去实现,吃力不讨好!”,或者觉得,“计算机语言,我学起来都挺费劲,更别提去实现它了,简直是痴人说梦!”
这些顾虑看起来都蛮有说服力,但为什么我们还是有必要自己去实现一门编程语言呢?我想从自身的体会来谈一下:
首先,实现一门自己的语言的过程,对能力的提升大到你难以想象!
据我的了解,在实现一门计算机语言的时候,能让我们接触到 编译技术、运行时技术、汇编语言、硬件架构和各种算法,基本上是从顶层到底层把技术做穿。有了这些硬功夫,只要你想,拿下 80% 左右的高层次的软件开发工作根本不是问题。
另外,像计算机语言这样的领域,前景真的难以估量。
如果你有关注国内的技术发展,就能知道我们目前正奋力补基础技术方面的课,大家都在奔着能拥有我们中国自己的优秀基础软件这个目标努力,比如鸿蒙的发布就意味着尝试的开始。
但想实现大规模的突破,必然需要更多具备底层编程能力的人才,同时还要能深刻理解程序在计算机硬件和操作系统之上运行的基础机制,以及计算机语言编译和运行所需要的技术等。
而学习如何实现一门计算机语言的过程,是能带来明显提升的最快方法。
说了这么多,不是想让大家头脑一热就盲目地跑去“闭门造车”,而是要给大家推荐一个人——宫文学,他是北京原点代码 CEO ,也是国内最早做 BPM(流程管理平台)和 BI 平台(大数据平台)的创业者之一,还研发过电子表单和低代码开发平台,是个经验十分丰富的研发老兵。
他尤其专注于编译技术领域,熟悉各种语言编译器的实现机制,在编译技术之路上具有丰富的实践经验。之前在极客时间的专栏《编译原理实战》和《编译原理之美》,口碑非常不错,已经超过 15,000+ 订阅了。
这次他带来了全新的 《手把手带你写一门编程语言》 专栏,希望能带大家深入到底层技术,手撸一套属于你自己的编程语言,大幅度提升个人开发水平,增加职业选择和眼界。
早鸟 + 口令「program66」立省 ¥40
到手仅 ¥89,原价 ¥129
值得注意的是,这门课采用的技术是宫老师 基于手头正在做的一门实用级语言为素材的,绝不是一门玩具级的语言,而且还会作为开源项目一直进行版本迭代,课程结束后是还 能拿这个开源项目作为自己工作的基础。
因为考虑到从零实现一门编程语言涉及到的细节和内容会比较多,工作量也比较大,宫老师将课程分为了三个模块,每个单独的模块又分为三个阶段,具体如下:
第一个阶段:用 AST 解释器把 TypeScript 跑起来,并在这个过程中掌握业界最常用的词法分析技术、语法分析技术和语义分析技术。
第二个阶段: 升级解释运行的机制,带你掌握字节码技术和栈机。
第三个阶段: 让程序编译成本地代码运行!
具体每节课的内容,可以来看看目录:
除了规划好目标和路线,宫老师还会在整个学习路途中,不断带我们补充“武器”和“弹药”,贴心地备好了有 上万行实验代码的代码库,从而更好地去实践整个代码的运行。
申请到了粉丝专属优惠:
秒杀 + 专属口令「program66」立省 ¥40
早鸟到手仅¥89,原价 ¥129
大佬的带领能帮我们摆脱“摸着石头过河”的窘境,也期待你通过一门个人专属编程语言的实现,体会到自己技术上的蜕变。
点击「阅读原文」
输入粉丝专享口令「Program66」
以 立省 ¥40 入手