|
关于编程语言:多想想可重用性而不是可移植性
作者: TechRepublic
Thursday, March 28 2002 4:18 PM
http://www.zdnet.com.cn/developer/study/story/0,2000081626,39031584,00.htm
IT顾问和软件制作商在过去的几年里一直鼓吹计算机设计系统中最大的神话之一(可移植的编程语言),而通常的商业技术消费者成为了它们的受害者。
可移植的编程语言一直是计算机开发的圣杯,虽然它对于技术顾问来说有一定的吸引力,但是它对于大多数的企业来说并不是合理的选择。为什么?技术顾问喜欢它是因为他们能够在不同的场合和不同的计算机系统上使用同样的代码。但是购买了用可移植语言编写的软件的公司其结果通常是不得不购买更多的硬件来运行没有经过优化的代码然后花更多的咨询时间以便项目能够正常进行下去。
在本文中,我们将考察为什么编程语言的可移植性并不象所鼓吹的那样神奇以及CIO在开始进行开发以前需要知道的东西。
剖析神话
这个神话最新的代表就是Java。象其诞生以前的COBOL,Fortran,UCSD Pascal和C一样,人们希望Java能够通过提供一种单一的语言并能在所有的平台上运行来标准化开发过程。
不久以前我在一家陷入这个神话的大型制造公司工作。一个顶级的顾问公司说服了这家公司的CIO:因为每个员工都需要记录他们的时间,那么公司需要开发一个统一的系统来收集这些数据。因为无法保证所有的用户都会使用同样的平台--因为这个公司的庞大和地域上的分散--顾问们还说服了CIO,整个时间记录系统应该使用Java进行开发。使用这种方法,据顾问们所说,用户就可以下载一个基于Java“标准”的GUI界面并与一个基于企业JavaBeans(EJB)“标准”的后端应用进行交互。
在历时一年多以及花费了两百万美元以后,整个项目只是完成了一点点。而现在的系统则在六个月内使用一系统的客户端Web页面和一整套为内部系统设计的时间管理对象被实现了。
什么地方做错了?首先,客户端程序并不能象技术顾问承诺的那样稳定于“任何JVM(Java 虚拟机)”上。其结果是,第一步的决定就包括了只为特定的JVM和JVM版本编写代码,而且要求用户使用的是其中一个版本。这对于代码的可移植性是一次打击。
第二,这个项目最初是被设计在中间层与BEA系统的事务服务器上配置的EJB一道工作。但是在项目的中间阶段,这家公司决定把中间层的处理过程标准化在IBM WebSphere上,因为许多数据仍然被保存在公司大型机的DB2数据库上,所以这个决定是合理的。当技术顾问希望增加两个全职的人手来帮助从BEA到WebSphere的“转换”的时候,CIO骂人了:“但是你们告诉我的是我们使用Java和EJB进行开发是因为我们可以在客户端使用任何人的JVB或者EJB中间件而且只需要移动我们的代码。”
在技术顾问把IBM提供的指示如何从BEA转换到WebSphere,厚达250页的“数据转换指南”扔在他的桌面的时候,CIO知道自己上当了。这是对代码可移植性的第二次打击。
在系统在一个测试环境里被使用的时候,明显的另人痛苦的是系统的性能在所有的商务规则在事务处理层被EJB处理的时候会受到损害。然后在底层的Oracle和DB2数据库的存储过程里编写大量的数据处理代码就是必须的了。一旦代码被从Java移动到了一个存储过程里,不仅程序不再是可移植的了,而且必须的技能和相关花费也会迅速增加。这是第三个,也是最后一个对代码可移植性的打击,这个项目被取消了。
现实情况
很重要的一点是本文并不是对Java本身的攻击。今天成千上万的系统在使用Java和EJB技术。但是在上面所说的项目中工作的开发者意识到他们需要在使用一个开发工具集并调试他们的应用程序的时候考虑到开发工具集本身以及应用程序运行的平台。
实际上,为了让一个系统工作,用来开发系统的程序总是必须或多或少的与底层的硬件和操作系统架构联系在一起。虽然源代码经常很少是可移植的或者是可重用的,但是生成的目标代码却是可重用的。在过去,这意味着在对象级别使用专有的协议比方COM和CORBA来进行接口化的编程。但是对于作为跨应用程序的通用语言的XML和SOAP,CIO们应该注意把软件开发优化成可以在一个平台上重用但是可以通过任何平台访问的模块。
CIO们还应该在一个应用程序实际源代码以外的地方注意可重用性。这些部分包括不于特定的语言或者平台相关的专门技术集合(开发数据库存储过程,开发用户界面,测试和质量保证),设计方法和开发方法学。
在要求真正的可移植性的时候,CIO们不经意就把开发者推进了一个陷阱,而且他们必须准备为他们放弃的东西付出代价:数据库优化,用户界面,与其它设备的集成,以及更低的应用程序版权费用。
责任编辑:小李(Email:li_shuangzhen@zdnet.com.cn)
TechRepublic是一个专为各类IT专业人士设立的在线社区以及资源中心,我们提供有深度的技术文章,这些文章由IT专家写成,面对IT专家读者。除了提供从Windows到e-mail到防火墙等各种文章以外,我们还提供IT业界分析,下载,管理要点,讨论组以及新闻邮件服务。
|
|