种瓜得瓜,种豆得豆
种瓜得豆,种豆得瓜
失之东隅,收之桑榆
绳锯木断,水滴石穿。
山重水复疑无路,柳暗花明又一村。
十年磨一剑,霜刃未曾试。今日把试君,剑气冲牛斗。
有志者,事竞成,百二秦关终属楚。
苦心人,天不负,三千越甲可吞吴。
阿基里德:我找到了。尤里卡!
昨夜西风凋碧树。独上高楼,望尽天涯路。
为伊消得人憔悴,衣带渐宽终不悔。
众里寻她千百度,蓦然回首,那人却在灯火阑珊处。
以人为本
By people, Of people, for people
民治,民有,民享
人制作的,人所有的,人使用的
天地不仁,以万物为刍狗;圣人不仁,以百姓为刍狗。
天地对待万物不存偏私, 圣人对待百姓不存偏私。
lisp的能力是强的,但是违背了以万物为刍狗,它没有让简单的事情简单,比如加减乘除这些东西应该有很方便的表示;违背了以百姓为刍狗,没有考虑广大的普通程序员,他们不熟悉函数,递归,宏这些概念,只是想解决手边的问题,而没有掌握理论的愿望。掌握理论能够更好更多更广泛地解决问题,但是掌握理论是要花时间的。c的效率高,但是它没有让文本处理等这些任务简,也没有让函数编程等等简单;没有考虑那些非系统程序员的情况。所以lisp语言, c语言等等不是天地, McCarthy和Ken.Tompson 和Dennis.Riche等也非圣人。
我们设计的软件, 应该考虑各种功能,不管是常用的还是不常用的,不管是容易实现的还是难以实现的。要考虑各种用户,不管是水平低的还是水平高的,不管是专业的还是非专业的。
大道废,有仁义;智慧出,有大伪;六亲不和,有孝慈;国家昏乱,有忠臣。
不要复杂,要简单。用户发明的技巧越多, 说明系统本身存在的的问题越多。
五色令人目盲;五音令人耳聋;五味令人口爽;驰骋畋猎,令人心发狂;难得之货,令人行妨。是以圣人为腹不为目,故去彼取此。
华而不实的编程技巧,界面装饰和功能容易败坏软件,软件应该专注于最基本最实用的功能。
天长地久。天地所以能长且久者,以其不自生,故能长生。是以圣人后其身而身先,外其身而身存。不以其无私邪?故能成其私。
程序员在编程序时应考虑如何使用户方便, 而不是自己编程方便。使用软件的人越多,程序员的价值就越大。
上善若水。水善利万物而不争,居众人之所恶,故几于道。
软件应该解决人们的困难,而不是为了表现自己。
太上,不知有之;
其次,亲而誉之;
其次,畏之;
其次,侮之。
信不足焉,有不信焉。
悠兮,其贵言。
功成事遂,百姓皆谓:“我自然”。
对各种语言的评价
太上: 不知有之: 各种系统应该追求这种境界。
其次,亲而誉之: 用户喜欢它,赞赏它的各种特性。python ruby lisp scheme perl php c++ java smalltalk
其次,畏之: 用户小心翼翼地使用,非常担心违反它的某些规则。smalltalk lisp scheme c++ java cobol fortran asm
其次,侮之: 不能完成用户的任务,用户弃之如敝屣。
信不足焉,有不信焉。它不值得信任,用户当然就不会信任它。
悠兮,其贵言。好的系统总是默默地工作,它很少显示自己的存在。
功成事遂,百姓皆谓我自然: 用户感觉自然而然就顺利完成了任务,根本没感觉到系统起了什么作用。这种系统是最好的系统。
道可道,非常道。
名可名,非常名。
道,可道,非常道:
已经归纳出来的规律,都不是世界终极的普适的规律。
软件,程序反映了某种现象,都不是终极的,固化的,
世界总是在变化,软件也会要变化。
名,可名,非常名。
任何名称的涵义都局限在一定环境之中,没有名称能超然的指示固定的对象。
符号,模式指示了某种东西,并不是无论何时何地都能够用来代表那个东西,而且那个东西也不是总是要用同样的符号或模式来代表。
计算机: 机械式计算机,电子管计算机,大型机,小型机,工作站,桌面计算机,笔记本电脑,掌上电脑,智能手机,平板电脑。
局域网,互联网:体现了计算机硬件的变化
操作系统: MSDOS,Windows3.1,Windows 95, Windows NT, Windows2000, WindowsXP, Unix, Linux, MacOS,体现了操作系统原理的变化
数据库:Dbase,FoxBase,FoxPro,Access,SQLServer, Oracle,……
程序设计语言理论: 编译原理 结构化程序设计,面向对象程序设计,函数式程序设计
名的变化
机器语言,汇编语言, 高级语言
高级语言:Fortran, Lisp, C, C++,Java,C#,Pascal,Haskell,Php,Perl,Python,XML: html,MathML…
一千多种高级语言
万物皆易。易者变也。
子在川上曰:逝者如斯乎,不舍昼夜!
尼采说:重估一切价值。
Kent Beck:解析极限编程-拥抱变化
天下皆知美之为美,斯恶已;皆知善之为善,斯不善矣。
按照流行标准设计程序, 不会有大的效益, 必须有一些东西是与众不同的才行。
有无相生,难易相成,长短相形,高下相盈,音声相和,前后相随,恒也。
难易相成:
你认为难的,别人可能认为容易。
你过去觉得很难的,现在可能发现它很容易,
现在觉得很容易的,将来反倒可能会觉得很难。
计算机难做的,人很乐于去做,计算机容易做的,人做起来很难,
计算机实现的时候很艰难,是为了让人用起来很容易。人艰难的去研究,是为了让计算机很容易的实现。
长短相形:
系统的长处,可能正好孕育着他的短处,在这方面有长处,可能就导致它在另一方面有短处
我在窗口看风景,风景里的人在桥上看我。
程序与数据
硬件与软件
生产者与使用者
不要手里有把锤子,见到什么都是钉子。
手里有把锤子,什么都可以当成钉子。
需要敲钉子,什么都可以当场锤子。
需要敲钉子,不见得什么东西都适合当锤子。
不要重复发明轮子。
试试重新发明轮子。
天下皆知美之为美,斯恶已;皆知善之为善,斯不善矣。
好的理论,工具最初必然只被少数人理解,一旦为大众所理解运用,则必然有新的更先进的理论,工具在萌芽,在发展。
圣人不积,既以为人己愈有,既以与人己愈多。
与人交流,无保留地表达自己的想法,设法使人理解,受到启发,对方反过来也会对自己有启发,帮助和促进。
圣人常无心,以百姓心为心。善者吾善之,不善者吾亦善之,得善。信者吾信之,不信者吾亦信之,得信。
没有成见,海纳百川。
自见,故明;
不自是,故彰;
不自伐,故有功;
不自矜,故长。
不要只看到自己,看不到别人,自以为是,以势压人,孤芳自赏
当然也应该不自蔽,不自非,不自弱,不自卑。
不要盲目从众,人云亦云,随波逐流,被强势所压倒,自暴自弃。
人法地,地法天, 天法道,道法自然。
上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。
天道酬勤
天行健,君子以自强不息。