2022-09-29

发现计算机技术发展有个特点,它总是沿着复杂 -> 抽象 -> 简单 的道路循环演进。

半导体的微观物理结构和规律很复杂,但封装成晶体管之后,硬件工程师只用把它当做逻辑门来使用即可。复杂的半导体,被抽象成了简单的逻辑开关。这样就能吸引更多的人才加入硬件研发队伍。

用布尔逻辑开发程序太复杂,汇编语言将其抽象成处理器行为,开发者无需关心每个寄存器的布尔值,就能完成程序编写。

随着程序复杂度的提高,用底层的硬件描述语言来开发程序难度过大。编译器则屏蔽了硬件行为,提供了更加抽象的高级语言,进一步的降低了开发者的心智负担。

软件越来越多,不同软件之间的资源分配变得复杂。操作系统则屏蔽了这一层的复杂性,开发者无需关心真正的硬件资源,就能开发出可靠的软件。

就这样,复杂的技术被抽象封装成简单的新技术。新技术得到大规模应用,同时带来新的复杂性问题。通过层层抽象,技术得到了演进。但技术人想要看清黑盒子里的真实,也变得越来越难。

我们为什么需要抽象?抽象是为了控制复杂度。同样高度的抽象是为了控制高度的复杂。

你可能感兴趣的:(2022-09-29)