发信人: wintereagle()
整理人: wenbobo(2002-11-26 13:58:48), 站内信件
|
这是上一封信的延续,
在你另外一封信中谈到对目前oo江河日下的问题。我有两点看法
1。你说"可能今天的OO已经偏离的方向,但是这种偏离是实践的结果,所以必须接受。"我觉
得这样的说法是有问题的。你的话有从逻辑上有层意思,1。oo存在问题 2。我们的实践发现
了这种偏离(不管你是否接受oo有缺陷这个现实)3.因为我们经过多年的实践投入的成本太多
产生了一种"Lock in"和"path dependence"的效应使得我们必须接受这样有缺陷的理论而
对其他更加强有力的工具视而不见。目前的oo的确是有缺陷,我们发现这些缺陷的发现是来
自于我们对oo的实践或者说是试错在这一点上我认同。实践所需要作的就是检验出谬误,这
应该是令人高兴的事情。但是你说是因为实践导致了偏离,并且我们必须接受这样的结果这
种说法我是不能认同的。"当初OO降临时,好像是个救世主"换一个方式来说"初OO降临时,好
像是就是真理".如果用poperl的话来说oo本来就是一种猜想是我们对用软件刻画世界的方法
的猜想,是猜想就应该有谬误。我们实践的目的就是需要找出这种谬误。而不能说因为我们
实践才导致oo逐渐的走向谬误。不管什么时候我们把oo当成救世主(抑或当成真理)本来就是
个错误。所以不是因为实践
才导致我们在oo的道路上偏离了方向而是把一种猜想当成真理或者救世主的思维让我们偏离
了方向。另外为什么oo有缺陷但是现在我们大多数的应用仍然在采用oo。我想并不是我们投
入了过多的成本或者由于习惯我们才不愿意更改。是因为我们手中没有足够强有力的工具(即
使是gP)来替代oo或者修正所以我们才会对oo如此的片执。你前面一封信也提到过"GP,目前
技术上还没有取得关键性的突破,难以上升到方法学层次".60-70年代软件业几乎都是pO的天
下,所有的软件公司都采用面向过程的方法开发软件。而且从60年代末po的严重问题已经暴
露无疑为什么不采用oo是因为oo那个时候
还并不成熟。只有80年代确立了ood/oop以后我们才开始转向。其次60-70年代那么多应用都
是面向过程的为么80年代ood/oop成熟了我们就能如此的快速大规模的转向oo而没有被我们过
多的实践或者投入过多的沉没成本而绊住手脚呢?我想oo也会如此不管是gp或者其他的方法
只要他足够的成熟我们就能不为我们以前的"实践"所绊住手脚大规模的转向。
2.如果从需求定律的角度来讲oo的江河日下未必不是一件好事情。过去十几年ood/oop的设计
开发成本一直下降,那就很容易推测,用oo设计和编写的程序的平均质量应该下降了。
ood/oop设计开发的成本原来非常高昂,粗制滥造的程序便没有回报。现在,不管需求大小,
oo编程设计的成本都非常低,所以越来越多低质的设计和程序得以出现。这并非表示oo的能
力下降了,而只是表明设计编写“较低劣”音乐的成本下降了。设计编写成本下降的本身,
使得所有类型的程序都增加了。不过,低质量和高质量程序录音成本同时下降,会使得低质
的设计和编程的份额增大,因为现在设计那种程序有了回报。质量更低的东西让人们多了一
些本来没有的选择,因为质量更低的东西,其价格也更低。应该说多一些低质量的东西,比
少一些低质量的东西更好。同时,质量更高的东西也更容易得到了,尽管高质量东西比低质
量东西的比例下降了。 今天OO良莠不齐,甚至江河日下的现象,从需求定律的角度来看,倒
是一幅令人宽慰的图景。
另外你提到Ada语言,我以前也有耳闻。今天我到网上找了一下,时间仓促只找到了
sigada83的spec。看了以后我觉得ada的确是一个很优美而且很健壮的语言。但是我发现了
一个问题可能也是Ada不那么流行的原因,ada不支持类型扩展和动态编连(至少我看的ada83
版本是这样不知道ada95有没有改进).我想ada的失败的原因大概就是在于此把。好了写着写
着就发现写了那么多东西。希望不要有废话,也希望sina的服务器稳定一点好让我快点看到
你的来信
祝好
Ian.King
|
|