计算科学中的所有问题都可以通过增加一层抽象来解决。
All problems in computer science can be solved by another level of indirection.
没有抽象的世界
想象这样一种场景,如果我们的语言中没有代词这种形式,那么我们想表达“张三是个好人“该怎么说呢?可能是这样的:
”你还记得我说过的人吧,穿着邋邋遢遢的,公司在中关村,整天背着个双肩包,写代码的,天天996,这个人是个好人“,看到了吧,在没有代词的情况下我们想表达一件事是非常困难的,因为我们需要具体的描述清楚所有细节,但是有了”张三“这种抽象后,一切都简单了,我们只需要针对张三这种抽象进行交流,再也不需要针对一堆细节进行交流了,抽象大大增强了表现力,这就是抽象的力量。
接下来回到计算机世界。
计算机使用层面
我们在使用计算机时其实抽象就在发挥作用,在Word中编辑文档时我们不会去考虑CPU是如何处理这些字符的,这些字符是如何被保存到磁盘的。在浏览网页时我们不需要关心网页中的数据是如何在网络中传输的、浏览器是怎样把这些数据适当的渲染出来的,我们需要做的仅仅就是在Word中简单的输入字符,用鼠标或者手指滑动网页。
因此只要在使用计算机,那么抽象就在发挥作用,只不过是我们没有意识到而已,而之所以我们没有意识到是因为抽象工作的太好了。
编程语言层面
程序员也可以从抽象中获得极大好