剑"、"气"和令狐冲
--对Computer Programming一词的诠释
   我从金庸那里得知,华山剑派分"剑"、"气"二宗:前者讲究具体招式的巧妙,后者追求内力之浑厚。可惜双方后来水火不容,两败俱伤。幸亏出了个令狐大侠,将二宗之精要汇于一身,终于重振此派。   

  依我看来,在当今中国的计算机行(业)内,也有类似的划分,二者的第一个区别就体现在对Computer Programming的诠释上。剑宗将其理解为"编程",重点在于"编写"的技巧。这部分人在数量上占优势,现在流行的大部分计算机书籍,都属于他们的"秘籍"。   

  气宗人士则认为Computer Programming应该是"程序设计",其重点不在于如何Coding,而在于代码背后的算法、数据结构,及其可行性、效率和最优化等等。这类人大多身处大学校园,而且有的的确是资深学者。他们认为Programming应该是一门科学,甚至是一门艺术,但绝不应该仅仅是一门手艺。比如鼎鼎大名的E.Dijkstra有句名言:   

  "Computer science should be called computing science, for the same reason why surgery is not called knife science."  

  这种分歧本来属于学术见解的争鸣,如果能相互促进、相互补充,也是一件好事。然而在今天中国,这种相互之间的误解与偏见却成为了我们的计算机业,尤其是软件业发展的最大障碍。  

  再回过头来读读Weinberg"Computer Programming Psychology (Silver Anniversary Edition)"(最终的中文翻译本译为"程序开发心理学")的这本书,他属于哪一宗呢?他反对过分强调Programming的技术性,反对这方面的"天资论",认为通过学习、培训和经验积累,"人皆可为Programmer"。另一方面,他也反对将Programming过分地科学化,甚至不认为这是一门科学。很清楚,他不属于任何一宗,因此他就是……令狐大侠。  

  令狐们会如何看待Programming呢?这正是本书要告诉你的(如果你能品出个中三味的话)。  

  简而言之,Programming是一项以人为主体,运用计算机进行的一项社会性活动。这个道理再简单不过,然而无论是剑宗还是气宗,都忽视了人及其社会性这一要素。因此,像盲人摸象一样,他们得到的认识除了能让他们沾沾自喜之外,是不能解决实际问题的。  

  
Jordon         
相关链接
· 透明对温伯格的专访(《程序员》第9期) NEW!
·名人堂温伯格专栏(《程序员》第8期) NEW!
·微软亚洲研究院院长兼首席科学家张亚勤专文推荐
·七宝楼台今安在
·个体性最后的堡垒
·走出问题的乌托邦
·从今天开始,做你自己的上帝
Copyright by shinebook, who publishes best books for IT people.
Edited by Shiningxyy,and designed by Orrin.