borland传奇-第48章
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
Framework,以便让C/C++的程序员在各种平台中开发高效率的分布式计算应用系统。
由于ACE Framework的流行以及广泛被使用,因此已经被许多C/C++程序员视为主流的
C/C++Framework。目前也有许多的应用程序使用ACE Framework成功的开发出高品质
的分布式软件。例如下图的ACE ORB便是使用ACE Framework实现重要的CORBA规格的
实时ORB引擎:TAO。TAO由于使用了ACE Framework,因此也属于一个免费的ORB引擎,
从遵照OMG规格的CORBA都能够使用ACE Framework来实现这一点,就可以了解ACE
Framework的实用性。读者可以在cs。wustl。edu/~schmidt/TAO。html找到TAO的数
据。
另外一个使用ACE Framework实现的著名软件就是JAWS了。JAWS是一个高效率的
Adaptive Web Server,下图是JAWS提供的复杂,强大的功能。读者也可以在
cs。wustl。edu/~jxh/research/找到JAWS的数据。
由于目前ACE Framework被使用得愈来愈广泛,所以许多C/C++编译器也开始支持ACE
Framework。因此新一代的C/C++开发工具必须能够支持ACE Framework,最好还能够
提供整合ACE Framework的功能,直接在C/C++开发工具内部支持ACE Framework。
Template和Design Pattern的极美结合:Loki
Loki是一个愈来愈流行的C/C++类函数库,它是由Andrei Alexandrescu先生开发的,
而Andrei也是〃Modern C++ Design〃一书的作者。事实上,Loki就是因为〃Modern C++
Design〃一书的介绍才逐渐被许多C/C++程序员使用。
Loki是结合了Design Pattern、Generic Programming和C++语言集成的C++函数库,
充分展示了C++语言的优美和威力,并且提供了C++语言使用新的应用。由于Loki的优
美和盛行,因此现在许多C/C++编译器和开发工具都以支持Loki为重要的功能之一。
最新的C/C++标准函数库Boost
Boost是除了ACE和Loki外另一个快速崛起的C/C++标准函数库。目前Boost已经被C/C++
Standard's mittee提议成为C/C++标准的核心函数库,由此可见Boost的重要性。
目前Boost同样被许多C/C++编译器支持。未来的C/C++开发工具应该在核心部分就会
支持Boost。未来的C/C++开发工具最应该采用的开放架构应该是在核心部分支持Boost
和Loki,并且以开放的Adapter来整合ACE Framework。
著名的C/C++函数库和Framework的开发厂商Rogue Wave
数年前使用C/C++开发工具的程序员可能都知道Rogue Wave这家软件厂商,因为Rogue
Wave就是以提供各种专业的C/C++函数库和Framework著名的。在数年前Borland和许
多的C/C++开发工具厂商也都向Rogue Wave授权使用Rogue Wave的C/C++函数库。我记
得,数年前在使用C/C++语言时最喜欢使用的函数库也是Rogue Wave出品的产品。当
年在C/C++User's Journal、C/C++Report等著名的杂志中,Rogue Wave的产品也是经
常可见的。不过随着C/C++的盛况不再,Rogue Wave的声势似乎也不如前了,许多当
时Rogue Wave著名的C/C++函数库也随着消失,在前一阵子甚至传出Borland可能并购
Rogue Wave的传言。
但是随着C/C++语言最近的重振声威,Rogue Wave似乎也开始有了比较积极的动作,
也推出了许多新的C/C++函数库和Framework,有兴趣的读者可到Rogue Wave的网站上
看看。
不过,Rogue Wave的发展史也见证了C/C+4…语言使用的演变。以前Rogue Wave是以提
供高品质的C/C++函数库著名,例如Rogue Wave曾推出过封装各种数据类型运算方法
的C/C++函数库,但是在STL等开放C/C++函数库流行之后,Rogue Wave的产品自然走
入了历史。另外,Rogue Wave也曾推出过封装ODBC的C/C++类函数库,以提供C/C++程
序员在各种平台使用ODBC存取关系数据库的能力,但是随着0DBC成为历史,Rogue Wave
这样的产品自然也开始消失了。
因此,如何为一个已经流行超过10年的语言不断注入新的创意、技术和应用,是每一
个C/C++开发厂商都必须面对的事情。
C/C++开发工具的未来
那么C/C++开发工具的未来是什么?难道在四大C/C++编译器厂商大战之后C/C++开发
工具的市场便没有创新了吗?除了Microsoft的VC和Borland的C++Builder之外,
Windows C/C++开发工具市场就此沉寂了吗?
当然不,在前面我们看到了C/C++函数库和Framework的蓬勃发展,相较于目前C/C++
开发工具厂商来说是有活力得多了。因此,未来的C/C++开发工具必须能够跟上最新
的C/C++标准以及各种颇具威力的C/C++ Framework。未来的C/C++开发工具除了本身
提供的编译器、集成开发环境和Framework之外,必须采用新的架构设计以提供C/C++
程序员整合Third…Party或是Open Source的C/C++ Framework,而无需C/C++程序员辛
苦地自己修改这些C/C++ Framework才能够使用。另外,未来的C/C++开发工具必须提
供类似Java的高移植性,让C/C++程序员能够在各种平台开发各种C/C++应用系统。除
了一般的应用程序之外,在移动设备、低阶系统程序等都必须能够胜任,而不像现在
的Windows C/C++开发工具一样,各在不同的应用中占有优势。
目前,Microsoft的VC++在窗口平台上的C/C++开发工具发展方向已经非常明显,那就
是维持原生窗口C/C++开发工具的现状并且往VC发展。Borland呢?除了Borland
C++Builder 6。0之外,未来Borland的C/C++开发工具将提供什么新的发展呢?
在前一阵子Borland已经宣布了未来仍将投入大量的资源研发新一代的C/C++开发工具,
将采用下图的架构提供给程序员最具整合威力的C/C++开发工具。
从上图中的架构,我们已经可以预知未来的Borland C/C++开发工具将允许程序员高
度整合最流行的C/C++ Framework,例如前面讨论的ACE、Boost和Loki等。这是非常
重要的,因为未来的Borland C/C++开发工具将提供跨平台/移动设备的能力,而这些
C/C++ Framework也大都提供跨平台的功能。如果Borland能够提供完整的整合能力,
那么这代表未来的Borland C/C++开发工具不管在什么平台,都能够提供最完整和强
劲的功能。
如果Borland真能推出这种新一代的C/C++开发工具,那么这将是Borland从当初Borland
C/C++3。0以来最具创意的产品,也是最值得程序员期待的C/C++工具。Borland是不
是能够遵照承诺推出呢?也许答案在2003年便会揭晓了。
'1;36m昨天'0;37m是'1;32m今天'0;37m的'1;33m历史'0;37m,'1;32m今天
'0;37m将成为'1;34m明天'0;37m的'1;33m历史'0;37m。 'm
每当我们回顾'1;33m历史'0;37m的时候,总会发现两样东西 'm
'4m'1;31m嫣红的血'0;37m,和'4m'1m晶莹的泪'm
'm'1;34m※ 来源:·飘渺水云间 freecityzju·'FROM: pcq''m
^v^v^v^v^v^v^v^v^v
第十三章 软件科技的发展和Borland的未来
〃Into The Future?〃
在前面的章节中,本书讨论了许多现象和问题。除了Borland本身的发展故事之外,
也讨论了一些科技的现状和未来的发展。在Java和平台的竞争以及许多科学技术
的发展下,Borland的未来到底会如何呢?Borland又要如何适应才能够持续在信息界
竞争、生存下去,进而茁壮成为更大的信息公司呢?在本章中我将提出一些个人的看
法。
除了软件公司的发展之外,我也观察到了一些信息技术的走向。这些信息的发展在未
来也都将牵动着开发人员的走向。除了在第10章中讨论的事项之外,我也认为更精致
化的程序开发能力、面向对象和Modeling的平民化、Web Service的发展以及平
台的普及化都将在2003年开始对于开发人员产生愈来愈深的影响。其中,Web Service
和是开发人员无法控制的信息发展潮流。开发人员唯有在了解了它们的趋势之后,
及早准备以适应未来的趋势。
而精致化的程序开发能力、面向对象和Modeling技术的平民化,则是属于比较贴近开
发人员的发展,也是开发人员能够掌握和进一步控制的因素,是软件人员必须了解未
来继续从事软件开发工作时必须克服和掌控的技术趋势。
到底这些因素的影响事项是什么呢?为什么它们对于软件人员在未来有很大的影响呢?
这些也是本章讨论的重点。
不都是整理和抽丝剥茧吗?
我在从事信息工作的生涯中使用过数种不同的程序语言、数据库、组件模型以及
Framework。面对许多新的技术不断地出现,开发人员似乎陷入了永远学不完新东西的
梦魇。不过,如果开发人员仔细回味许多技术的本质,却会发现这些技术其实只是把
我们已经了解的东西再以更细致化的方式加以运用,关键在于开发人员是否注意到了
这些本质和趋势而已。
例如,目前在C++中流行得火热的Template、Policy…Based template,在Java、Object
Pascal和C#中当红的接口程序设计,以及各种组件模型和Web Service中的服务接口
等,如果我们仔细地咀嚼,会发现许多的东西正是发挥程序员原本就拥有的整理和抽
丝剥茧精神,再加以发挥的东西。这怎么说呢?让我们以数个例子来说明读者就容易
了解了。
首先让我们想想为什么会出现数据库这类的产品?很简单,因为由于数据愈来愈多,
数据种类也愈来愈繁杂,因此造成了我们需要一种软件产品能够整理这些数据让它们
更容易的被我们处理和使用,因此才有了数据库的想法和产品。
在每一个程序员学习撰写程序代码时,也会发现随着撰写的程序代码愈来愈多,许多
的程序代码不断重复出现和被使用,因此很自然的程序员开始使用例程(routine)/子
程序(subroutine)或是过程(procedure)、函数(function)等机制帮助我们进行程序
代码整理和抽丝剥茧的工作。
这些数据和程序代码整理的工作几乎是每一个程序员的求生本能,只是有的程序员只
做基本的整理工作,而更聪明的开发人员则对于整理的工作有不同的看法,进而促使
了许多延伸软件技术的出现,也开始对软件开发产生了重大的影响。例如,对于原本
杂乱的程序代码以数据和程序代码分离的看法而逐渐产生了面向对象的技术,以分离
例程/子程序和数据类型为看法的应用则产生了类似C/C++中的template技术,而以函
数面对服务的看法,认为开发人员应该面向服务的开发模式则造成了接口程序设计
(Interface Programming)的应用热潮。虽然现在这些从程序代码延伸出的技术都独领
风骚,在软件开发界中产生了重大的影响和开发模式的改变,但是,如果我们追根究
底来观察,这些技术不都是从