结束语 结束,只是新的开始
你好,我是海纳。
今天就是专栏的最后一节课了。在这个专栏里,我们一起实现了 Python 虚拟机的基本功能,并且在直播课程中,又实现了一个小的脚本语言。从而打造了一个五脏俱全的小型语言虚拟机。
虚拟机的基本结构
就像专栏第一课所介绍的,编程语言虚拟机是一个有足够深度的领域。以相对成熟的 Hotspot 和 V8 举例,一个典型的编程语言虚拟机包括执行器、垃圾回收器和运行时支持等三大特性。
执行器有两种基本的结构:解释器和 JIT(Just In Time,即时编译)执行器。我们专栏所实现的正是字节码解释器,而 JIT 执行器因为有完整的编译流程,很难在有限的时间内实现它的完备功能,只能留给你自己去探索。
垃圾回收器的主流算法也在不断地演进。Hotspot 从 CMS 走向 G1 回收器,然后向 ZGC 等无暂停垃圾回收算法演化,支持的堆越来越大,回收的效率也越来越高。与此同时,JS 和 Go 语言中的分块分区算法也在持续进步。
在 Python 虚拟机中,运行时包括列表、字典等内建类型支持,也包括闭包、函数对象等维持运行时状态的对象。运行时与语言的语法特征有很强的关联性。很多语言仍然在不断地向前发展,所依赖的正是语言运行时提供的能力。
我们会看到像Scala和Kotlin等语言一开始可以运行在JVM上,后面慢慢地演化出自己的语言核心库,并慢慢转向自研编译器。
所以说,虚拟机的三大基本模块仍在以很快的速度不断地向前演进,新的语言、新的算法、新的硬件、新的应用场景仍然在高速发展。然而这一切,其实都还在虚拟机整体的发展框架之内,所以,以我们这个专栏为起点,掌握好虚拟机的基本结构仍然是最好的入门手段。
兴趣是最好的老师
我从本科的时候就一直对基础软件非常感兴趣,2006年开始研读操作系统源码,2008年加入人大金仓,在那里深入地了解了数据库的基本架构,2012年在网易接触到了 Python 虚拟机在游戏中的应用,对虚拟机和编译器技术又产生了浓厚的兴趣。
2016年加入华为正式从事编译器和虚拟机相关的开发工作,这期间我把以前做基础软件相关的经验总结出来,在2018年出版了《自己动手写Python虚拟机》,并在2024年基于Python 3.8对这本书的内容做了全新的升级。
2021年我出版了极客时间的专栏《编程高手必学的内存知识》,从内存管理这一个视角切入,串联起操作系统、编译器和虚拟机等多个领域。今年下半年《从零开始写Linux内核》也已经交付给出版社校对审核,准备出版。
在这个过程中,引导我前进的是对底层软件深深的热爱。操作系统、编译器中精巧的数据结构,充满艺术感的分层抽象,反复锤炼的优化算法无不深深地吸引着我。我经常阅读、调试代码到深夜,这个过程其实充满了兴奋和快乐。
在工作中,当自己所实现的特性最终被编译通过,并且成功运行起来的时候,那种纯粹的喜悦之情难以言述。就像一个玩乐高积木的孩子,那种精巧结构所带来的快乐远超于所谓世俗的成功。
好多人问我,怎么才能学好编程,我想说,真正能够带领你走下去的是你的兴趣。
未来是星辰大海
在基础软件最艰难的起步时代,在中国做信息产业并不赚钱,那个时代愿意投身技术的人,大多都是出于纯粹的热爱,那个时候论坛里最常见的话是:“写代码这么好玩的事情,还有人给钱,真是太好了。”
随着行业的发展,越来越多的人进入到这个行业中来,现在公众号上很多10万+的文章中都流露出“写代码这么辛苦的事情,如果不是给钱多,谁愿意干呐”这种情绪来。
二十年,待遇固然已经天差地别,但从业者的心态也发生了巨大的变化。对于现在的行业低谷期,我并不觉得这是什么坏事,相反,却认为是好事,这是一个让投机者离场,让热爱者更有时间沉淀的调整期。
在当前整个产业遇冷的背景下,还能静下心来读专栏的你无疑就是这个行业中真正的热爱者。只有热爱者才能在黑暗里燃烧自己,照亮前行的路。
表面上看,现在资本市场遇冷,各种应用接近饱和,简单的行业延长线上的增量已经挖掘得差不多了。但是实际上在我们看不见的角落,革命的力量正在悄悄地积聚,革命也必将发生。曾经被视为天量数据的生物医疗领域,正在被疯狂增长的算力逐渐攻克,基因治疗、生物化学反应的计算机模拟等等无不显示着大数据处理和人工智能的威力。
无人机、无人车等等智能设备的逐渐普及正在快速地革新着物流交通等领域。高速的算力和智能化在国防、太空探索等领域也在发挥着巨大的作用。在深海里、在冰山上、在沙漠中、在太空深处,信息化和智能化正在带领着人类往更深远、更静谧、更神秘的未知领域前进。
而基础软件也来到了变革的分叉点。是往更强大更全面更复杂的架构演进,还是往更专业更细分更简明的架构演进,不同的人有不同的回答。但我想,只要我们俯下身子,把基础软件的地基打好,无论未来人类往什么方向前进,我们基础软件开发人员一定会是前进路上最重要的核心保障。祝你早日到达自己的梦中彼岸。
最后有一份结课问卷希望你可以花几分钟填写一下,期待看到你的真实反馈。
- ifelse 👍(0) 💬(0)
未来可期
2024-11-14 - kkxue 👍(0) 💬(1)
功力深厚,表达专业清晰,期待hinus下个专栏!
2024-07-12
