敲响OO时代的丧钟!——怀念失落的世界(2) OO编程CGIthread
值得怀念的世界,却不值得回去!
——庄表伟
接着昨天的话题说下去,那个面向过程的世界是完整的,统一的,也是容易理解的——对于程序员来说——或者说他只需要一种理解能力。这个世界虽然值得怀念,却不值得再回去。因为,我们不再像当年的程序员那样,只开发那些简单的软件了。很多人崇拜那些早起的“大牛”,其实平心而论,我们现在面对的问题的复杂程度,在他们当年可以说几乎无法解决。需求的复杂程度也不是他们当年能够设想到的。
我们来看几张照片:
http://forum.cul.sina.com.cn/cgi-bin/view.cgi?gid=43&fid=1352&thread=1206&date=20040622&page=1
这是在秘鲁发现的神秘的纳斯卡巨画,这样巨大的地面艺术,可以给我们对于面向过程的编程的结论一个可视化的比喻。面向过程的编程,只有一个统一的世界,他对于软件的理解,始终不会离开计算机的操作与运算本质,这就像在平地上作画那样,我们需要的一根长1米的直线,非常容易,两点一线,一拉就出来了。但是当我们需要在地面上画一根5000米甚至更长的直线时,如何保证画出一条直线,就成为一个巨大的挑战。当视角无法升到足够的高度时,如此复杂的图案几乎是无法把握的。仅仅依靠结构化的划分,并不能完全的隔离复杂度的交互影响。单步跟踪一个1000行代码的程序并不困难,但是如果是100万行代码,甚至更多呢?
再看一张照片:
这是世界上最大的“埃及胡夫金字塔”。我们假设,如果当年法老在工程进行到80%的时候,提出需求变更,希望金字塔尖能够向右移动10米。情况会如何?——会死好多劳动人民的!如果希望向右移动100米呢?如果希望有四个塔尖各在一个方向呢?如果。。。还好这一切都没有发生,否则我们就不可能看到一个真正完工的金字塔。然而在软件开发领域,当“结构化编程”面对“移动金字塔”的需求变更时,它只能破产!
可以得出一个比较关键性的结论是:
仅仅从计算机的角度出发,对于更为复杂的需求,描述力不足。对于巨大的需求变更,应变力不足。而这正是对于的软件需求的必然发展趋势。
所以,那个世界不值得回去,但是,OO真的帮到我们了吗?
(未完待续)
上一篇: PyQt 4.8.4 发布