OOP的未来(转)
OOP的未来撰文/Bjarne Stroustrup & Tim Lindholm 编译/孟岩
把宝押在Java上?或是坚持C++不动摇?还是考虑考虑C#?你是否犹豫不决?那么不妨先听听下面这些专家的说法,对于面向对象程序设计语言的现状和未来作一番了解。
关键词:C++,Java,C#,OOP
科技进展一日千里,产品生产周期则越来越短,不少程序员已经完全没有时间掌握第二种语言。不论一个程序员的技术能力是否被考虑,对于他来说,将来能够参与什么类型的项目,加盟什么样的公司,在很大程度上,将取决于今天选择哪种程序设计语言。为了帮助大家清晰地了解C++和Java这两个最流行的OOP语言现在和将来的有关情况,我们采访了C++语言的设计者Bjarne Stroustrup,以及Sun公司著名工程师Tim Lindholm。下面是他们的观点,内容涉及程序设计的未来、语言之间的比较、OOP语言的发展与革新之取舍以及程序设计标准。
未来
在未来三年,程序员编写代码的方式会发生那些变化?
Stroustrup: 在C++中,假如没有合适的库在背后支撑,完成任何重要的工作都可能是很复杂的。而一旦有了合适的库,任何东西都可以被我们操控于股掌之间。因此,构造和使用程序库的重要性与日俱增。这也暗示我们,泛型程序设计(generic programming)将会越来越多地被运用。只有通过GP,我们才能确保库的通用性和高效率。我还预期在分布式计算和“组件(components)”应用领域会出现喜人的增长。就大部分程序员而言,通过使用方便适用的程序库,这些开发工作会变得简单明了。
现在有一个趋势,编译器厂商试图把其特有的“对象模型”和图形界面(GUI)细节推销给用户。比如微软的COM和Inprise的类属性“properties”。对于用户来说,这既不必要,也不情愿。我所希望看到的程序库,应该是用标准C++打造,界面灵活,值得信赖的程序库。通常,这些界面应该是平台无关的。C++的表达能力极强,即使不使用大量的宏,也应该足以达成这一要求。就算有些地方无法百分之百的遵守这一原则,也应该将对于平台和厂家的依赖性限制起来。这个目标的完成情况,可以反映软件工具产业对于应用程序开发行业的关注程度。我怀疑目前对于那些独立的、跨平台厂商来说,并不存在相应的市场。如果能够建立这样的市场,也许能够促进厂商们为客户做出“真正有用的”产品。
Lindholm: 对于编写代码的开发者来说,主要的驱动力量仍将是两个:网络和分布式——也就是设计和开发非单机软件的需求。大部分的应用程序将不会是孤零零地运行在单一设备上,而是运用了类似EJB和JSP之类技术的,平台无关的分布式程序。程序员们将不得不面对分布式计算的重重险阻。这将对许多程序员所依赖的设计模式、技术和直觉构成严峻的挑战。这是选择编程语言之前必须认识到的,尽管不同语言的设计特性可能促进或者阻碍这一转化。
补充:Jsp教程,面向对象编程