太子爷小说网 > 传记电子书 > borland传奇 >

第43节

borland传奇-第43节

小说: borland传奇 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



多的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)的应用热潮。虽然现在这些从程序代码延伸出的技术都独领 
风骚,在软件开发界中产生了重大的影响和开发模式的改变,但是,如果我们追根究 
底来观察,这些技术不都是从对程序代码和数据的分析、整理和抽丝剥茧之后,以更 
精致的方式来处理和开发软件吗?   
因此,本着相同的想法和精神,聪明的开发人员开始脱离单一程序语言的架构而进入 
了开发出可重复使用的软件组件模型,让不同的程序语言都能够在统一的组件模型中 
达成团队开发的功效。这个更聪明的整理和抽丝剥茧的想法造就了CORBA、/+ 
和EJB等组件模型的驱动力。   
除了脱离程序语言之外思考的开发人员外,另外有一些开发人员则再次回头检视本身 
和他人的程序代码,并且努力搜寻优良和成功程序代码的基因,因此发现了这些优良 
和成功的程序代码似乎都有着类似的模式和架构,再经过进一步的分析之后终于产生 
了Design Pattern,这成为目前最重要的软件开发模式和技巧之一。在这之后,这些 
聪明的开发人员了解到如果能够成功运用Design Pattern,并且把程序设计转变成以 
服务为目标的方式,将更能够简化、标准化和结合Design Pattern的运用,并且隐藏 
复杂的实现技巧,这就进而产生了Service Interface Programming的观念和技巧。 
由此可见,只要开发人员能够发挥细心整理和抽丝剥茧的能力,那么即使无法创造出 
伟大的新软件工程或是软件技术,但是仍然能够帮助我们增加生产力和软件品质。因 
此,对于开发人员来说重要的不是无止境地学习层出不穷的各种新技术,而是到底有 
没有了解这些技术之后代表的观念、思想,以及学习最重要的对于软件开发整理和抽 
丝剥茧的能力。在我的工作生涯中,一直认为技术终究是会被大多数的人学会的,但 
是在辛辛苦苦地努力这么多年后,到底我们的思想、眼光和抽丝剥茧的能力是否有所 
精进呢?如果没有,那么我们永远就像被蒙着眼睛,只能尾随着他人告诉的技术前进, 
永远找不到自己的方向。   
现在,再让我们以一个C++的例子来证明只要开发人员能够看透程序语言和技术背后 
代表的真实意义,那么即使是在已经被众人熟知的技术中,仍然能够创造出新的技术 
和含义。在Andrei Alexandrescu先生所著的〃Modem C++Design〃一书中,我们再次看 
到了聪明的开发人员对于程序语言的了解和对于程序代码撰写整理以及抽丝剥茧的惊 
人能力。Andrei的想法不算复杂,但是却巧妙地运用了对于C++ template深刻的了解 
而创造出了自己的精彩之作。其实,全书呈现的思维之妙,让读者可以从一开始的小 
范例就看出如何运用已经广为人知的技巧之后呈现出的不同风貌。   
例如,Andrei想法是以Policy…Based想法为主,以各种不同的准则来提供服务函数, 
那么通过C++ template的能力,让开发人员能够根据自己的需求来选择需要的Policy 
和数据类型,结合于C++的template,可以捉供开发人员前所未有的自由度,并且开 
启了以往函数库开发人员无法想象的挥洒空间。例如,下面的程序代码中提供了三个 
不同的类别,这三个类别都可以建立指定类别T的对象实例(Object Instance),但是, 
这三个类别各自使用了不同的方式来建立T的对象实例。在这里提供了建立T类别的对 
象实例的准则Create()方法,但是却允许开发人员自由地根据自己的需求选择要使用 
那一种方式来建立对象实例。   
由于上面的三个类别提供了相同的Policy(其实,从Service Programming的角度来看, 
可以说它们都提供了相同的服务),因此,开发人员可以再自行定义一个consumer类别, 
并且结合C++的template功能,让这三个服务类别成为客制化数据类型,再通过template 
的能力,自由地被开发人员选择使用。例如在下面的程序代码中,WidgetManager 
类别通过template功能可以在编译时期动态决定使用那一个Policy类别作为父代类别, 
而自动拥有建立T类别的对象实例的能力。   
最后,我们可以再次使用template能力在编译时期由开发人员代入欲建立的T类别的 
实体类别定义,�

返回目录 上一页 下一页 回到顶部 赞(0) 踩(1)

你可能喜欢的