老子是程序员

前言

license:本文版权授权采用《老子协议模式》。即非经本人允许,不得转载。链接的可以。copy的话给钱!

传说老子名李耳,春秋时期楚国人。我,姓名不提,党国时期楚地人。
从地缘上说,和老子还是个老乡。
传说老子骑青牛西去。西去,我倒是玩过,不过是坐的铁鸟。要是我现在骑着头牛在大街上走,要么被车撞死,要么牛被没收,人被抓起来。
闲话不提,先谈我最近的重大发现。经过我10来年和程序打交道的沉淀和最近两年断断续续拜读《道德经》的收获,我发现老子并不仅仅是传说中的图书馆馆长,而是一个很nb的程序员,兼高级项目经理,至少是高工级别的。

说我疯癫了吧,我还笑你看不清呢!
先谈硬件条件。根据国人的说法,当年冯诺曼是看了周易研究出的二进制计算机。
由此倒推过去,我们聪明的祖先既然在周朝初期就掌握了原理,在周朝末年大量使用计算机那是相当自然的事情。

再说学科设置。武汉大学(楚地的)图书馆专业属于信息管理学院(说白了也是搞挨踢的)。
所以老子名正言顺是个it精英。
我当年读大学的时候,图书馆还搞网吧这个副业。估计老子手里也掌握着几十台电脑的网吧资源,老子玩集群和云估计也是杠杠的。

再回过头来看看老子的作品《道德经》,这完全是一部不朽的程序哲学和项目管理的经典著作。如果翻译的好,什么人月神话,人贱啊之类的书根本就没有存在的必要,在amazon上软件项目管理类、哲学类、教育类销量排名从1到10都是《道德经》。
言归正传,让我从第一章给大家分析起。

先说道可道,非常道,名可名,非常名。
为了这句话,一堆搞文字研究的人逐字逐字的考证,把古籍翻完了也没个定论。
据我理解,这是高级程序员兼项目经理老子为了吸引大家读下去,搞了几个没有用的变量来掩盖真实的内容的贫瘠。说穿了,就是这两句话读起来很震撼,内容很空洞。
但如果只是空洞,那老子也就不可能成为老子,这两句话说明了两件事情的重要性,道和名。
道就是tmd哲学。哲学也就是事物发展的客观规律,我们一定要顺道而行。但这个道不是一般人都够明白的,要学习中顿悟。
谈到哲学,我印象最为深刻的就是斯特劳斯普,这个C++之父在《C++的演进》中谈到C++的哲学是一种尊重个体的哲学,反对黑格尔那种强调群体而忽略个体的思想。只有尊重个体才能尊重集体,集体才有凝聚力。因此C++允许各种编程风格,这就是设计之初对程序员的尊重。
RoR的DHH的设计哲学是DRY(Don't Repeat Yourself), Unix的设计哲学是做简单的事,把简单的事情做好。这也是SOA的设计哲学,每个人先把自己管好,再谈如何遵循社会道德的交互。
所以设计系统的时候一定要先确定程序哲学,如果哲学思想没有确定,系统就开始人格分裂了,参与到系统的人也无所适从。
名,从宏观上说解决一个问题必须使用和问题相关的名词。在Domain Driven Development 中专门有一章说对于Domain的分析,首先需要在业务专家和设计人员之间统一问题交互的名词,也就是唯一的确定参与到Domain中对象的名称。
举个例子,大家都看过程序设计书里面,尤其是C和Windows编程书里面的句柄这个词。当年,我差点被这个词搞得抓狂过,不过也感谢这个词,我tm下定决心不看中文文档了。
句柄就是哪个不懂装懂的技术书籍翻译者对handle搞出来的名词,意译过来就应该是唯一标示,不管是文件句柄还是进程句柄。返回个把手给你就是让你抓着他可以用,翻译的下流一点你说是给你个文件的小jj让他听你摆布不就完了。不懂还故作高深,说白了就是装B。
名不正则言不顺,程序就是表达,没有好的名词你根本表达不清楚。就像写程序的时候,变量名称都nm var1 ,var2 , a, b,c,d一样。
所以老子说无名,天地之始;有名,万物之母。
有了有意义的名字,才能够写出好的程序。

故常无欲,以观其妙;常有欲,以观其徼。
写程序,要insideout,和嘿咻一样。解决问题的时候,先不要冲到问题里面,呆在外面什么都不要做,观察到底是怎么回事。也就是宏观的看问题,把门道妙处先看清楚。
然后做点事情,看问题有什么反应,是不是和预想的一致,这就叫做观其徽。
简而言之,别慌着动手,多观察,多思考。

此两者同出而异名,同谓之玄。玄之又玄,众妙之门。
要做到玄,就必须适度的把握自己干和不干的冲动,然后就可以游刃有余,程序项目都被你玩。


猜你喜欢

转载自belmount.iteye.com/blog/1585686