精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>C/C++>>C、C++语言基础>>关于GP,OO的一场私底下的讨论>>关于GP,OO的一场私底下的讨论2

主题:关于GP,OO的一场私底下的讨论2
发信人: wintereagle()
整理人: wenbobo(2002-11-26 13:58:48), 站内信件
这是myan的回信,这封信中的我们的意见暂时的统一在一起。
不过后面的争论就打了,在信的末尾我们讨论了一点karl.popper的哲学。


SnowFalcon兄,你好! 
我也非常高兴能和你私下讨论。因为现在项目的压力很重,所以我尽可能说得 
简洁一些。 

首先,我以前是一个具有明显语言派系倾向的人。除了C/C++之外不把任何语言 
放在眼里。但是随着我对C++的了解越来越多,使用越来越熟练,现在反而能够从更 
高的角度看待语言这个东西,不再是一个语言主义者。我意识到,C++虽然是一种伟大 
的语言,但是缺点十分突出,很难培养出足够数量的熟练C++程序员。因此,在编程 
语言的发展过程中,C++的角色更像是一个开路先锋,而不是最终的主流。今天 
Java在OO领域中已经开始占据主流地位,在未来,这一幕一定会在GP领域中重演。 
因此,我对于C++在未来能够继续成为主要系统应用开发语言的推论是很悲观的。 
那么为什么我还如此热情的投入到C++的学习中呢?因为我认为C++语言在现代编程 
语言的发展中,具有枢纽和里程碑的地位。就如同康德在哲学中的地位,是一座 
桥,你可以褒扬,也可以贬抑,但是在今后相当长的一段时间里,没有任何一个语言 
在设计、评价和讨论的时候,能够绕过C++不提。在面向过程、面向对象、泛型三个 
方面,C++都伸展到了一个静态强类型语言所能到达的极限,同时,还衍生出template 
meta-programming,并具有模拟functional programming的能力,它的博大 
宽广,令人叹为观止,Bjarne Stoustrup作为一个语言的设计者,他的勇气和胆量, 
实在很难有人能超越。所以,我坚定的认为,如果能够真正了解了C++,那么将来无论 
使用哪一种语言,都能够以更深层次的眼光看待之,不会被眼前的表象迷惑,不会失 
去 
方向。 

在未来,我认为加入了泛型能力的Java/C#,正在开发的D语言,当然还有Python, 
都有很好的应用前景。此外,我还看好Ada 95会有一定的发展,这种语言是除了C++之 
外 
我最敬重的语言。我曾经跟朋友开玩笑说,如果我开一家集开发、培训为一体的公 
司,那 
么我会教学生学C++,面向中小客户的开发和商业软件我会用Python和C++,而面向大 
客户 
的重要行业软件开发我会用Ada。玩笑而已,虽然不可能,但是倒确实代表我的一些基 
本 
看法。 

至于GP,我曾非常乐观,但是现在的观点逐渐趋于保守。因为从概念上看,GP主 
要 
是对计算机算法和数据结构进行抽象的成果,也就是说,它对于计算机进行了很好的 
抽象, 
但是,这种能力很难拿来对现实世界作模拟。对于后者,OO确实是目前最合适的手 
段。而 
GP,目前技术上还没有取得关键性的突破,难以上升到方法学层次。倒是template 
meta- 
-programming会对于OO有一定的影响。 

对于你对GP的看法,我基本上是同意的。你应该注意到了,我从来没有把 
template看成 
是GP的必要条件。GP是一种描述,不管用什么手段,能够做到的就是GP。所以我对于 
java.util, 
JGL以及Python中的GP也并不排斥,相反我很感兴趣。但是由于template所提供的抽象 
方式 
非常独特,而且目前已经形成了一整套理论和支持机制,所以在这个方向上研究GP是 
最有 
希望的。否则Java也不会有了reflection还想纳入Genericity功能。 

我曾经非常迷恋哲学,可惜放下了很长时间了。最喜欢的哲学家恰好是康德和波 
普。 

谢谢你愿意在Python方面提供帮助。我确实有学习Python的计划。这个项目结束 
后,可能 
就会开始。到时候请多多指教。 

孟岩 
10-14 

[关闭][返回]