“软件蓝领”批判

2008-04-10 02:48:01来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

说在前面

最近一段时间,“软件蓝领”的概念被炒得沸沸扬扬,连我老爸都忧心忡忡地打个电话问我:“听说以后只要找些高中生来培训两个月就可以编程序,那你岂不是要没饭吃?”由此可见,尽管“软件蓝领”的阶层尚未真正形成,“软件蓝领”这个概念倒是早已深入人心。不过就历史经验来看,中国人最擅长逻辑思维,因此也最容易受语言的鼓惑而陷入逻辑先验的泥潭。那么,抛开所谓的“概念”,我们来科学地看看“软件蓝领”。

在开始一切的讨论之前,首先要说明一点背景。本文将大量使用建筑科学与软件科学作类比,这是基于这样的考量:软件工程学很大程度上受到建筑科学的影响,并且软件比建筑物更具灵活性;因此软件与建筑是有可比性的,但是软件对感性质量的要求会更高、而对物理质量的要求则不如建筑那么高(我想这是很自然的:尽管Windows不断打补丁,它仍不失为一个优秀的软件;而盖房子则不允许有任何“补丁”出现)。如果你不能承认这一考量,那么下面的文字对于你都是废话,可以不必看下去了。

一点背景

OK,现在我们已经有了起码的共识,继续。传统软件工程方法强调软件的“模块化”,认为用少数的、规格统一的模块(module)加上简单的模块拼装就可以构建出大量的、彼此不同的软件产品。这正是软件蓝领能够产生、存在的理论基础。其实这种概念并不新鲜,自从第二次工业革命以来,建筑师们就开始追求一种快速的、模块化的建筑方法,并且卓有成效——他们用完全相同的“小格子间”模块建起了无数的摩天大楼。这是伟大的成就,难怪软件工程专家们一开始就选定了“模块化”作为自己模仿的对象。而且,当软件的用户只是极少数人的时候,这种模块化的开发方法的确起到了很好的效果。

但是你知道在70年代,以Christopher Alexander为首的建筑学家把这种模块化建筑方法叫做什么吗?“语言的沦丧”。C.Alexander认为,建筑物之所以“有生气(alive)”,是因为它由一些特定的、有生气的模式(pattern)组成。模式之间彼此相似,但又彼此不同。道理很简单:模式具有可定制性,而模块则不具有。完全相同的模块必定是与具体目的无关的。换句话说,用模块化方法方法建造的产品能够满足最基本的要求,却不能满足任何一个人的特定要求。为了满足单个人或者一小组人的要求,就必须采用模式化的方式为他们定制。模式是既有的,设计、建筑是定制的。有人会说:任何的物质,最终都是由同样的模块——原子——构成的。但是,即使是两个碳原子,它们也是彼此不同的,因为其中的电子具有量子性。所以,模块化(所有模块完全相同)不是自然的,而模式化(概念上一样,细节上有差异)才是自然的。

上面这一段也许有点太抽象,现在从工程学的角度来看看。C.Alexander认为,任何一个系统都必须处理一个问题:系统的内应力。学过工程力学的人都知道,在设计结构时必须注意内应力。如果内应力疏解得当,它会使系统更加稳固;如果疏解不当,它会加速系统的崩溃。在《建筑的永恒之道》里,C.Alexander把“内应力”从物理范畴扩展到了心理范畴,人的喜好、习性……都属于内应力。如果使用恰当的模式、进行恰当的组合,内应力将得到恰如其分的疏解,从而增强系统的稳固性。很明显,要使内应力得到“恰如其分”的疏解,建筑者必须了解模式本身,并在实现的过程中不断根据当前的情况进行微调,否则很容易造成应力集中而加快系统崩溃。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:RefactoringtoPatterns——简介

下一篇:Whatisquality--theexpertsopinion