发信人: 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 |
|