老子读感

原创 2007年10月06日 09:27:00

<第一章>  
          <原文>  
          道可道,非常道。名可名,非常名。无名天地之始;有名万物之母。故常无,欲以观其妙;常有,欲以观其徼。此两者,同出而异名,同谓之玄。玄之又玄,众妙之门。  
          </原文>  
   
          <一段废话>  
          再次阅读这一章,真是又兴奋又悲哀。兴奋的是这么精辟的言论,几千年前咱们的先辈就提出来了;悲哀的是几千年后,我们却已经将其忘却。每当看到学生被一些“高深”的编程思想难住,崇拜一些国外的软件“牛人”,我想,真的应该好好读读老子了。  
   
          也许是几千年的语言变迁让阅读成为了一种困难,也许是几千年的历史变迁让思想(特别是古代经典思想)成为了一种累赘,反正现状就是没有人愿意花时间去读读几千字的《老子》,但是愿意花时间去读几千页的《Java编程思想》。但愿我这些不成熟的“读感”能多少改变这些。至少,让一部分程序员了解老子,了解中国的经典,如果程序员都熟知这些了,中国的传统文化也许还有传播下去的希望。  
   
          “读感”写作的时候用了XML风格来描述,纯属为了搞笑,呵呵,不过也许后来真会整理成XML版。  
          </一段废话>  
   
          <读感>  
          第一章其实是全书的精华所在,如果这一章深刻了解了,也就没有再读下去的必要。不过除非你悟性很高,否则不会发生这种现象。所以我的建议是,第一章要反复的读。这里暂时不解释第一句“道可道……”,从相对简单的“名”说起吧。  
   
  “无名天地之始;有名万物之母”,世界处于原始状态时,事物是没有名字的,那时候树不叫树,水不叫水,不过即使没有名字,也丝毫不影响这个世界的运转;之后具有智商但又明显智商不足的人类出现了,为了方便彼此的交流和标识这个世界,人类开始给万物取名字,比如以后竖长条的植物就叫树吧,会抓老鼠、瞄瞄叫的就叫猫吧。

    有了名字真的方便,张三想去肉铺买点鸡胸脯肉,再也不需要先学鸡叫,再指指自己的胸脯了。名字真好,但是一定要看到它的不足之处:起名其实就是在给事物归类,但这个归类很难十分的准确,比如家养的猫的不会抓老鼠,那还算不算猫呢?或者只要是竖长条的植物就是树吗?可见,这个归类是否恰当要取决于人类对于事物的认识程度和归纳能力(其实“名可名,非常名”就概括了这个情况,我们以后会论述)。  
   
  那么这个名对程序员来讲怎么理解呢?有些读者大概看出来了,这个名就是面向对象中的类嘛!类:描述了一组对象共同的行为和方法。看看,是不是这么回事儿?  
   
  就以做一个自动化办公的系统为例吧,某企业需要将自己的办公流程自动化,邀请你来做这个项目,那么你要做的第一步是什么呢?90%的人应该可以答对,就是先观察现有的手工办公系统,看它的流程,看它的结果,看它的优点和不足等等,也就是说,要进行需求分析。此时,这个系统对你来讲就处于一个无名的状态:业务的边界是模糊的,规律是隐藏的,但仍然在正常运转。  
   
  好了,经过一段时间观察你已经充分了解了这个系统(至少你自己这样觉得),接下来自然要开始我们的自动化改造了,肯定先要进行设计吧,假设我们采用面向对象的思想来设计(事实上,很少有人敢说我不用面向对象的思想,虽然他们真的敢这么做),设计类,类之间的关系,如果你相信UML的话可能还会画出用例图,类图等让人看了眼花缭乱的东西。  
   
  我们都知道,需求分析,设计是软件开发中起决定性作用的两个环节,在这两个环节中我们干了什么呢?实际上就是一个从“无名”到“有名”的过程:从最开始的一个原始系统,到我们UML图上的一堆类,是不是这样呢?这个从“无名”到“有名”的过程是怎么完成的?就像我们给事物起名字一样,方法无外乎归纳和抽象,总结抛弃事物一些无关紧要的特征,抽取共有的特征。  
   
  本章后面两句说的就是这么回事儿:“故常无,欲以观其妙;常有,欲以观其徼”。在原始的状态中,可以观察其规律,特征;然后抽象出我们的类,观察其边界,是否能够较好的体现被描述的事物。好了,这个过程老子在几千年前就已经描述过了。  
   
  是否惊奇于这个预言般的现象?实际上不用惊奇,因为现有的编程方法无非就是用计算机对现实世界做一个描述,刚开始是面向过程,后来人们觉得离现实世界太远,于是又有了面向过程,它至少比面向过程更符合我们对世界的看法,于是乎面向对象能够流行数十年。假如以后面向对象也被淘汰,那么取代它的一定是一种更贴于真实世界的思想。说白了,这是一种世界观之间的斗争。老子已于几千年前就有了这种到现在我们还觉得难以理解的世界观。  
   
  本章的最后几句更为重要,“此两者,同出而异名,同谓之玄”,无名和有名,原始和抽象,竟然是“同出”的。这一点我们需要警醒。很多情况下,在做完需求分析之后,我们会习惯把“愚蠢的”客户抛在一边,然后闭门来进行我们的设计,之后再根据设计来进行编码。这个过程实际上是将无和有完全的分开了,并不符合真实的情况。大家根据经验或想象可以知道,这种闭门造车的情况很容易出现最终的软件和客户需求不一致的情况。  
   
  “玄之又玄,众妙之门”,玄之又玄是什么意思?按照我现在的理解,对事物的认识不能看到无,也不能只看到有,要综合起来,反复进行有、无之间的转换,才能使自己的认识更贴近于事物的本源。对软件开发来讲,意味着我们要对开发过程进行迭代,反复的进行分析、设计,呵呵,聪明的读者已经看出来了,所谓的XP编程等最近流行的时髦词,已经在这一章中得到体现了。  
   
  最后总结一下:对这一章进行初步的解毒,我们至少发现了这些观点:  
   
  1,软件开发中需求分析和设计是一个从“无名”到“有名”的过程,但是这个“有”不是凭空的有,来自于对现实(至少是假象的现实)的描述。  
  2, “无名”是事物的原始状态,而“有名”取决于人的抽象,不同的人可以有不同层次的抽象,一种“无名”可以对应多种“有名”,并没有一个终极的正确答案。其实这就是“名可名,非常名”。  
  3,要想相对“准确”的从“无名”到“有名”,我们需要反复思想,进行迭带。  
          </读感>  
  </第一章> 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

老子双核的电脑为什么这么慢?

清晰地记得当初第一台电脑667M左右的奔三CPU,128M内存,“大哥大”显示屏,有时看时间久了眼疼,但是每次只要有时间,都迫不及待地想打开它:静静地看书、查找一下错过的电视剧、打开编程软件验证一下比...

第十讲 老子智慧与人际交往的识人

http://shahanbin678.blog.163.com/blog/static/106323245201002694452831/   第十讲 老子智慧与人际交往...

老子与百姓生活

写在前面         寒假看了05录制的关于老子与百姓生活的百家讲坛节目,感触颇深。该系列纪录片由江南大学文学院教授、古代文献研究所所长姚淦铭所执讲,生动有趣,幽默诙谐,在欢乐中让你明白很多道理...

老子哲学与中华精神

老子哲学与中华精神 来源:光明网-《光明日报》      雅斯贝尔斯在提出“轴心时期”理论之后,又在《大哲学家》一书中将苏格拉底、佛陀、孔子和耶稣列为“思想范式的创造者”...

《从0到1》读书笔记第一章"未来的挑战"第2记:做老子还是做孙子

从1到N VS 从0到1 - 别让自己的小鸡鸡抓在别人的手上近几年国内互联网创业上非常流行一种C2C(也就是Copy to China - 拷贝到中国)的创业模式,打的就是一个时间差和地域差。将在国外...

老子·《道德经》白话文解释

老子·《道德经》白话文解释前 言      道是道, 德是德, 而非我们平常所说的道德矣。  道的含义:1、构成世界的本体。2、创造宇宙的原动力。3、促使万物运转的规律。   德的含义:人类行为的准则...

第十讲 老子智慧与人际交往的识人

http://shahanbin678.blog.163.com/blog/static/106323245201002694452831/ 第十讲 老子智慧与人际交往的识人这一讲,我们来谈谈在人际交...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)