敬畏「新建文件夹」,敬畏科技
2020-07-15
想象一下,你在使用电脑,显示着你的电脑桌面。
你单击鼠标右键,选择“新建文件夹”。然后,毫无声响地,一个新文件夹就诞生了!这个文件夹有棱有角,黄色或蓝色皮肤,跟现实文件夹的轮廓几乎一致。
更神奇的是,你继续点击鼠标右键,继续选择“新建文件夹”,又有一个文件夹出现了!跟前面的一模一样,只是名字后面可能加了(1),用来区分不同文件夹。这之后,你不停地创建文件夹,不断有文件夹出现在你的眼前,这个游戏可以不停地玩下去……
这难道不是很神奇的事情吗?
这就像在现实中,只要你说“我要一个新文件包”,然后一个文件包就空投到你的旁边,然后你又说“我要一个新文件包”,“嘣!”又一个出现在你眼前。然后你不断地讲,不断有文件包出现,直到文件包把你淹没……
这当然不可能在现实生活中出现,因为制作一个文件包要经历做模(第一个需要)-收集材料-编织材料-机器压线等步骤,你说“我要一个新文件包”等于下单,下单到文件包到货至少需要几天的时间。这之后,模型固定,流程固定好的话,那么文件包到你手上的时间也会缩短,但无法达到下单即达的速度。
是什么让虚拟的世界这么神奇呢?为什么你一说指令,完整的产品就完成了呢?其实,这里面有很多我们不知道的步骤,只不过计算机的速度实在太快,快到我们都感受不到其中的“制作过程”。
很久以前,计算机并不像我们今天看到的样子。它是一门程序语言,你只能够通过敲击键盘上,组成一定的代码,才能看到计算机返回的信息。而计算机返回的信息,一开始也只有文字。
渐渐地,人们发现代码交流过于复杂,门槛过高,才慢慢设计出了图形界面。那么,图形是如何出来的?文件夹是如何新建出来的呢?
最初,人们只发现计算的功能——计算,比如2+2=4,5*8=40,只要你输入这些等式,计算机就能返回正确的结果。无论等式有多难,计算机都能立即处理出结果。
渐渐地,人们发现,有些等式出现的概率很高,比如24-x/60,这是人们根据使用的分钟数算出剩余时间会使用的公式。于是,人们就把这个功能固定下来,变成一个固定的对象Rhour(),以后不用敲击一长串数字,直接Rhour(x)就可以了。
这个功能是如何实现的呢?
编程专业里面有个词汇叫“OOP”(Object-oriented programming),即面向对象的程序设计。在计算机代码的世界,万事万物都可以成为对象。对象指什么?对象指可以重复利用的功能。比如刚才提到的“24-x/60”,计算机可以做出这样的等式“Rhour(x)=24-x/60”,Rhour()就是一个对象。之后每次看到Rhour(x),那么计算机就会自动搜索等式,如果按文件包制作的过程比喻,每次你呼叫“Rhour()”,那么计算机后台就会自动制作文件包。因为制作文件包的速度飞快,所以你会觉得计算机凭空变出了一个文件夹。实际上,这一切都在后台通过代码悄悄地完成。
只要有重复利用的功能,你告诉计算机(类似于开模),计算机就自动记忆起来。所以,所有重复的事项都会因为计算机的加入变得迅速起来,你甚至不能感受到“制作过程”的存在。计算机慢慢加入所有世界上所有的“对象”,即所有有规律的事物,速度慢慢变得更加地快。
回到“新建文件夹”的惊叹,现在我们明白了,每当你发出“新建文件夹”的指令,计算机其实在搜寻一个对象,因为这个对象曾经被人存储起来。所有通过这个对象制作出来的文件夹,都有一样的棱角,一样的颜色,一样的大小。它们并不是实时出现在你的眼前,而是因为“制作过程无穷快”,“配送速度无穷短”,所以才让计算机变得像魔术师一样神奇。
那么,我们可以借鉴什么呢?
首先,对象思维。只要是可以重复利用的东西,都应该成为一个对象。为了提高效率,我们不重复同样的动作。程序员有个规则叫“DRY”(Don’t repeat yourself),即不要重复你自己。能够一次说清楚的事情,制作一个指令,让所有人得知,尽量一次解决。如果是今后会使用的对象,那么就将它储存起来,告诉计算机,避免下次写同样的指令。
其次,虚拟世界的速度更快,快得难以想象。能用机器解决的事情,不要使用人力,两者速度不在一个量级。
我们是应该敬畏科技的,科技都为我们做了原本可望而不可及的事情,不仅仅是给予人们前所未有的计算速度,还告诉了人类对象思维的强大。即使仅仅是新建一个文件夹,就蕴含着巨大的科技力量。