软件,咳……艺术?
提到程序设计艺术,第一个想起来的人物那一定是鼎鼎大名的高德纳(Donald E.Knuth),他的一套《计算机程序设计艺术》对计算机程序设计界的影响不可谓不深远。而他本人至今也挂着斯坦福大学计算机程序设计艺术荣誉教授的称号。再放眼市面上的计算机图书,《汇编语言艺术》,《软件艺术》,《项目管理艺术》等等不一而足。似乎程序设计就是一门艺术,通过字节码表达着通与断的美丽,在零和一之间充满着张力和魅力。很多人常常拿建筑艺术来做以比较,恩,设计模式就是从建筑模式得到的灵感。
那么无数的从业者又在追求什么呢?软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程力图对软件项目的各个方面作出指导,从软件的可行性分析直到软件完成以后的维护工作。个人认为,软件工程的最终目的是使得软件能够摆脱开发中的一切牵绊而达到一种工业化大批量生产合乎一定质量标准的代码的水平。这就好像汽车的生产从每一个零件都需要手工打造到生产线装配乃至现在机器人生产线的过程。
如果软件成为了生产线下的产品,那还能称作是艺术品么?就好像我们不会管显示器叫艺术品一样,尽管工业设计的时候还是有艺术行为存在,但是批量的产品也无法称为艺术品了。
艺术,迄今还没有公认的定义。通常认为,艺术是人类以情感和想象为特性,来把握和反映世界,表示对世界及自身,对二者关系的看法的一种特殊方式。
艺术和科学不同,科学借助人类的理性反映客观世界的规律性。艺术借助人类的感性反映世界,包括客观和主观的世界。
——Wikipedia
可以看到越来越多的呼声在叫喊着:“我们需要代码工人”,“我们缺乏软件蓝领”……越来越多的程序员开始从事简单重复劳动,越来越多的毕业生面临巨大心里落差。想起来“清华夜话”里面的对白:“程序员和钳工是一个工种”,“我XX还不如去筛沙呢”云云,也不是胡乱说说。大学生正在成为“日用品”,学计算机的也不能除外。如果不是搞研发,程序员这个职业已经很难和“艺术”挂上钩咯。
手工业转为机械化大生产是必然的趋势,生产力的提高才能提供给社会所需要的供给,才能实现新技术的普及和广泛应用。面临着生产方式的巨大变化,我们必须做好准备。要么死心塌地的做一个代码工人,要么进入必须有人来亲历亲为的层次——分析、设计和管理。总是有需要人的地方,就算将来代码全部可以自动生成了,需求总还是需要人来分析,也总还有新的领域需要人来做前期发展的工作。我不太敢想,所有的事情都可以依靠AI的时候,也不用想,我赶不上这样的时代。(呵呵,那个时候,人用来做什么呢?)
暂且我还是把自己当作半个“艺术家”看吧,至少还算一个“手工业者”。首先正确当个“手工艺人”,然后如果有能力带“学徒”那就可以有饭吃了。我也必须把自己定位在“艺术”这个层面上,达不达得到,还不好说,努力吧。人往高处走嘛。比如建筑艺术家和建筑工人的差距,那个,还是很大的哦。
正好,刚刚读过的《Joel On Software》中也有一个章节有类似的例子(有中文版书的同行们可以翻到P209页看看“巨无霸麦当劳与天才厨师”一章,没有书的同志们可以去Joel的Blog阅读Big Macs vs. The Naked Chef 一节。)尽管Joel谈论的和我说得不是完全在一个方向上,至少,麦当劳和天才厨师这个例子一样可以用在我的这篇Blog中来。咳,我应该好好学习一下尊敬的Joel前辈举例子的能力,太贴切了……
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=582253


Recent Comments