文章导读
陈景序:大家好,今天我们来聊聊计算机程序的演进,看看这位资深程序员潘爱民是如何回顾他三十多年的程序生涯的。这篇文章不仅会带我们了解程序的发展历程,还能让我们对未来的技术趋势有所启发。正文部分
我在 1985 年第一次接触到计算机程序,尽管那只是娃娃机上的一些作业型的 BASIC 程序,但我依然感受到了编程的乐趣,并且乐此不疲地编写各种花样程序。三十多年过去,计算机程序于我而言已经成为一种思考方式,无论是应用层的功能,还是系统层的能力,或者是背后的数据处理逻辑,都转化成了机器的指令。
我有幸完整地经历了从 PC 时代,到互联网的兴起与发展,再到移动互联网,又到万物互联时代和产业数字化的发展历程。这三十多年,既是软件技术和产业的发展期,也是我个人的职业生涯和程序人生。本文介绍我认知中的计算机程序的演进,正好是程序人生三十年的一篇小结。
软件栈 —— 从源代码到机器指令
通常而言,计算机程序是指软件中的代码部分。软件涵盖的内容要多得多,比如还包括数据、文档,甚至有硬件(比如加密狗),还可能有相应的服务等。计算机程序则是指一组指示计算机或其他具有信息处理能力的装置执行各种动作的指令。计算机程序既可以是机器指令的形式(由二进制数 0 和 1 构成的序列,人难以解读),也可以是人编写的原始代码的形式(通常由程序员来解读和维护)。
过去三十多年软件技术的发展,可以从程序编写方式和运行方式来看待其中的变化。典型的有以下一些方式:
- 代码直译执行
- 代码解释执行
- 虚拟机和容器化
- 前后端分离
以上四种方式,前三种侧重于计算机程序在同一台机器上被引入了一个或者多个中间层,导致源代码被多次解释或映射才到达物理 CPU;第四种方式则是从横向跨机器的角度将可视化和用户交互部分与业务逻辑(特别是数据处理)解耦。这些变化与软件产业的发展息息相关。
网络 —— 无处不在的连接
网络的发展改变了我们的生活,这是过去将近三十年人类社会最大的变化之一。网络也同样改变了计算机程序的运行方式,甚至改变了编程的思想。
人工智能 —— 从模拟智能到超越人类智能
人工智能的发展代表了人类使用计算的一种追求。计算是一种能力,可以做很多事情,包括科学计算和事务型的任务等;其中人工智能的任务是指,让机器通过计算,可以像人类一样拥有智能。
可视化和用户交互 —— 从 GUI 到数字孪生
在应用软件开发工程中,可视化和用户交互部分往往会占据相当大的比例。写这部分程序逻辑的工程师往往比较受欢迎,因为他们可以快速搭建出一些看得见效果的程序。
对程序技术进步的预测
前面回顾了过去三十年重要的程序技术进步,最后我们也展望一下未来。
小结与拓展
本文分别从软件栈、网络、人工智能以及可视化与用户交互的角度回顾了过去三十年计算机程序的演进,正好对应了我的程序生涯三十年经历中的一些感悟。期待未来十年计算机程序技术继续进步,为人类开启更加美好的生活和体验。
我是陈景序,来自「websoft网络软件专家」(www.phpwebsoft.com),希望这篇文章能给大家带来一些启发。想要了解更多内容,请关注我们的网站。
