分享

向父亲解释自己的工作,为什么这么难

 昵称535749 2015-11-19
guest · 

编者按:本文经授权转载自微信公众号“离线时间”(theoffline,12 月《离线》将在北京举办一届「离线未来大会」,点击这里了解更多),本文作者是《内核恐慌》的主播吴涛。

科技发展的规律,以及理解这种规律的思维,很多时候可以延伸到人、文化和生活中。在这篇风格非常独特的文章里,作为一名程序员,作者就把机器的封装衍生到了人的封装,甚至不同文化的封装。最后作者也回答了一个问题:向父亲解释自己的工作,为什么这么难?

我觉得小孩子对待玩具乃至 “器物” 的态度,归类来说就是两种:爱惜型和毁坏型。有些人五岁买的布娃娃可以存留到三十岁,虽然褪色,但仍旧干净而完整,这样的孩子属于爱惜型·珍藏派;另些人则可以把祖传三代的闹钟拆到不能继续分解为止,也许还能装回去,但是最后会多出几个零件来,这样的孩子属于毁坏型·分解派。毫无疑问,爱惜型的孩子养起来比较省钱,也很可能比较省心。我相信父母曾多么地希望我也属于爱惜型,我清楚地记得六岁前后的一天,我爸爸指着我的玩具箱——某个巨大无比可以把我装进去的日立电视机包装箱——痛心疾首地说:“你看看这里面的玩具,有一个完整的么?” 而我只能羞愧地低下我的头。

童年是毁坏型的人长大之后,或许留不住一件可堪传给后代的玩物,不过除非他属于毁坏型·凌虐派,否则他很可能从拆拆装装之中获得了一种能力:解构。

我去过慕尼黑的一座德意志博物馆,虽以德意志命名,却是一座科技博物馆。在印刷馆里,大致按照编年顺序,一一陈列着印刷业使用过的工具。古代的工具很好理解,甚至可以仅用文字记录和解释,比如原始雕版印刷的工序:

  • 1. 用蜡蒙住一张金属板,用炭灰将蜡层涂黑;
  • 2. 在蜡层上刻以文字或者图像,深及金属板表层;
  • 3. 将金属板浸泡在腐蚀性液体之中,未经蜡层遮盖的部分即被蚀刻;
  • 4. 加热金属板以融去蜡层;
  • 5. 在金属板上涂墨;
  • 6. 压纸,印刷。

不过,接下来的一件展品,包括活体字模和一台有着若干曲柄、平板、橡皮滚筒、皮带轮,顶端还有一个圆盘的机器,就不太能直观地看出运作原理。

此时的印刷工具虽然已经相当复杂,但只需要阅读一下说明,仔细观察它的结构,如果还能让我拆开来,大致弄明白它的运转状况不会是太困难的事情。

问题是,继续移步向前,面对一台硕大的机器的时候,我就很难明白它是如何运作的了:主要的障碍在于,这台机器功能性的部件已被包裹,从外部可以看到的只是一些硕大的方盒子,以及那一小块控制面板。与它裸露着金属骨骼的前辈相比,这个东西看起来复杂的感觉,倒是大大降低了——虽然这无疑是个假象:这个玩意显然要用电,所以里面会有布线;这是一台光学排版仪器,所以里面应该也会有透镜组和相应的机械部件;油墨、进纸设备自然也都少不了。总之方盒下面其实是一套高度复杂的机电设备。但是,正因为方盒子的存在,这一切都被隐藏了起来,留给用户的只是那个控制面板,以及相应的输出口。在一台机器上,单纯通过拆卸来解构并了解其工作原理,几乎是不可能的任务。

也难怪这台机器之后的展品只有一件:一台苹果 Power Mac G4 计算机,加上一部打印机。此时几乎文字设计与排版的相关工作都不再依赖于特定功能的机械、光学或者电子元件,而是由软件——一些运行在通用中央处理器和存储器之中的二进制代码——来完成。机器本身已经与其解决的问题领域无关,拆解机器不再能带来任何相关知识。

印刷业与电子计算机的结合,乃至许许多多其他传统工艺与电子计算机的结合,都多多少少造成了这样的尴尬境地:对细节和复杂性的封装已经到达如此高度,以至于没有太多可供展示的实体了。乐器博物馆里能够展出竖琴、提琴、羽键琴,人们会仔细观赏它们的美。模拟电子合成器也值得一看,毕竟它还有那么多旋钮和指示灯。但是,到了电子键盘和电子计算机的组合之后,又还能展示什么呢?

童年终结之后(虽然有些人认为男性的童年永远不会终结),拆东西的习惯被我保持了下来。当然,童年的经验告诉我,把尚能正常运作的东西拆开会遭到人类社会的惩罚,我必须忍耐着直到它们坏掉,才能去拆一拆以探究竟。但并不是每天都有东西会坏掉,我故而不得不通过组装东西来转移自己的注意力,由此开始喜欢做模型,直到后来我有了一台 PC。它也许可以算是父母给我买的最后一件玩具。和我此前拆过的那台山寨 Apple II 的中华学习机不同,这个玩意拆起来很容易,装起来也很容易,但是,过来人都知道,电脑拆拆装装过几次之后就会觉得厌烦,而且通常需要拆的电脑里面都很脏。拆电脑遂变成了一件体力劳动,甚至不及拆一只精密的随身听更有成就感。当然,大学时代以拆电脑为借口去女生宿舍参观另当别论。

拆计算机很容易,是因为计算的各个组成部分都被做成了独立模块,彼此通过各式各样的接口连接在一起,而这些模块本身又是由更小的模块构成。换言之,计算机的每个组件都试图将自己的实现细节对其他组件隐藏起来,两个相关组件只需要通过预先约定好的方式互动,或者说,每个组件都被 “封装” 了起来。对于最终用户来说,电脑呈现在面前的,只有键盘、鼠标、显示器而已,一切不需要用户关心的细节,都被隐藏到了用户界面的后面。甚至可以说,当细节不得不被暴露出来的时候,往往也就是普通用户最痛苦的时候。不过,对于喜欢拆东西的人来说,知道哪些东西被封装了起来,乃至知道封装的方式与思路,是很有趣的一件事情。

每当毁坏型·分解派人格蠢蠢欲动、解构欲望无从释放的时候,我就会去想,在我每天面对的这台电脑里面,有一根或者几根内存条,每一根上面有近百亿个晶体管,它们按照某种特定的方式分成十几亿个小组,在某一刹那,两组彼此相邻的晶体管,一个存放着高电平,另一个也存放着高电平。或许这一个里面正在流动的电子总量要略少于那一个,但对于内存控制器来说,它们都是 1。不过,尽管它们彼此紧邻,值亦相等,却有可能一个属于我正在看的那张美女图上敏感部位的一个像素,另一个则属于我正在听的那首歌里面三分四十二秒处的低音。两个小小的可怜的不起眼的明明彼此相邻的晶体管,因为命运让它们一个习惯向左走,一个习惯向右走,始终不曾相遇。

可是除去要写病毒木马,普通程序员对于实体内存的运行状态也并不关心,他们有更多要忙的事情:比如怎么解压一段 mp3,怎样把报表中的一列的数字从大到小排好,怎么发现用户输入的那个单词拼错了——并且猜测用户本来想要输入的单词是哪一个,还有很头痛的如何跟其他程序员写的程序交换数据的问题。所以 “不知道实体内存管理的实现”,乃至 “不去理会什么是内存”,对于他们来说显然是一种解放。

现代程序员所使用的所谓 “高级语言”,就是这样一种思想的体现:高层不依赖于底层才能存在,底层向高层封装自己实现的细节,只去完成高层所需要自己完成的任务,这是一切计算机设计的基本理念。所以作为科学的计算机学和作为工程学的计算机制造业之间的关联其实很松散:“计算机科学与计算机的关系并不比天文学跟望远镜的关系更紧密”,荷兰科学家戴克斯特拉(Edsger W. Dijkstra)如是说。而当计算机告别它那个用户全都是程序员的襁褓时代,程序员们发现自己除了要理解比较低级的封装,还要制造更高级的封装,最终目的就是如何让非程序员的最终用户们不必去理会功能实现的细节,而是简单地按下一个按钮就能完成一项工作,从而让克拉克第三定律 “任何非常先进的技术都与魔法无异” 锦上添花。

不过,这群程序员 “协同” 得并不轻松,因为每个程序员对 “封装点” 或曰 “抽象层级” 的容忍程度都是不一样的,所以喜欢和电脑打交道的层次也不一样。对于许多人来说,超出其舒适范围的抽象点都是可鄙的,不管更高还是更低。代表性的言论比如:“我亲手写代码,架构师那套都是花架子” vs. “我只负责设计,写代码是民工的事”,或者 “JavaScript 是玩具” vs. “写 C 的都活在石器时代”。一个比较泛化的版本是,“某某工具吸吮”,这里的工具可以是代码编辑器,或者某种编程语言,或者某种编程范式。吸吮的原因一二三四五,必然有跟复杂性隐含太多或暴露太少相关的一条,就好比美女穿衣服,登徒子会觉得穿太多,卫道士会觉得穿太少。

人类的先进或曰悲剧之处,在于积累知识和制造工具。故而历史上必定有过某一个时刻,一切被记录下来的知识还有被制造出来的工具,从此超越了人类穷尽一生能够掌握的界限,世上也不再有真正的通才。很久之后,当扔向天空的一根骨头变成了航天梭,我们发现自己面临着怎么向别人解释自己的职业这一难题。尤其是从事的职业缺乏可见成果时,能精确扼要地告诉外人自己的工作内容,几乎可以算是一种才华,正如把自己掌握的知识传授给别人同样是一种才华。

曾经给我买玩具的爸爸如今已经老了,也不再显得那么全知全能,虽然好奇心还是存在的。我在德国刚刚毕业找到工作的那会儿,他老人家每次打电话时都会问,你的工作是干什么的?你的工作具体是干什么的?你的工作到底是干什么的?而我隔行如隔山的回答永远无法令他满意。对话往复若干次,终究让爸爸放弃理解我的工作细节的努力。虽然后来我意识到,这些问题背后,他最好奇的那个元问题其实是:“你回国的话,能找到工作吗?” 而且这个问题的答案,并非我说他就会信,而必须是经由他自行分析我提供的信息得出来的才可以。这种行为背后的逻辑,就是遇到想要了解的东西,能拆开的一定要拆开,能追问的一定要追问。我不能幸免地继承了这个打破砂锅问到底的习惯,这造成了我人生的许多困扰,也导致我在修电脑、做好人的泥潭里越陷越深,只因电脑作为一口砂锅,可以碎成太多块了。

本文来自读者投稿,不代表 36氪 立场,如若转载,请注明出处:http://36kr.com/p/5039826.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多