我从金庸那里得知,华山剑派分"剑"、"气"二宗:前者讲究具体招式的巧妙,后者追求内力之浑厚。可惜双方后来水火不容,两败俱伤。幸亏出了个令狐大侠,将二宗之精要汇于一身,终于重振此派。
依我看来,在当今中国的计算机行(业)内,也有类似的划分,二者的第一个区别就体现在对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是一项以人为主体,运用计算机进行的一项社会性活动。这个道理再简单不过,然而无论是剑宗还是气宗,都忽视了人及其社会性这一要素。因此,像盲人摸象一样,他们得到的认识除了能让他们沾沾自喜之外,是不能解决实际问题的。
|