当前位置:首页 > 软件开发 > dev
firefox

Borland有一个梦,程序员的梦

 

作为一个程序员,我在软件行业已经整整十个年头了。现在,我有幸在北京borland工作,每天面对的是程序员赖以生存的工具软件,个中滋味,自然难以述说。

borland其实是一家小公司,在当前it领域遍地富翁的情形下,在微软、oracle、sun等软件巨头身旁,borland银行里那一亿美元的储备金,真的算不了什么。

但是我知道borland有一个梦,一个程序员的梦。为了这个梦能变成现实,borland的那些天才的程序员终结者们,总在夜以继日地耕耘着键盘,是的,总有一天,梦会成真,程序员们会为之狂悦。

每个公司都有自己的文化,就像每个国家都有自己的信念一样,borland也有自己的底蕴。福勒先生(现任代总裁)说过,要把borland建设成一个像瑞士一样的国家。哦,瑞士,这是个不大的国家,是的,borland只是一个小公司;它以精致的钟表和工具而闻名遐迩,borland曾用一个delphi维持了公司八年;它拥有勤劳聪慧的民众,borland拥有全球最有天分的一群程序员;它在各种艰巨的地形下建造了数不清的人工奇迹,borland打造了一个又一个的极品软件;在瑞士旅游,你不用担心便利性的问题,用borland软件,你无须关心繁琐的细节。最重要的是,瑞士完全中立,borland没有平台。

是的,borland的产品没有平台。这是西蒙先生(borland高级副总裁)给程序员的承诺。这是borland梦想的一部分,可以说已经基本实现。corba中间件产品visibroker屏蔽并连接了不同的平台。软件对象框架产品appserver、软件对象管理产品appcenter、java开发工具jbuilder都运行在jvm之上因而只要java能到的地方,这些产品就能到。数据库产品interbase已经做到了windows、linux、solaris三类平台之上。年底前delphi for linux、明年上半年c++builder for linux将出炉(参照kylix计划)。有什么理由不相信borland能实现自己的承诺呢?

其实borland所指的平台不只是操作系统平台,还包括语言平台,无论是pascal、c++、java,你看到的ide环境都会是同一个面孔,你使用的组件都是类似的架构。除开语言平台,还包括不同的软件对象体系标准。你会发现无论是使用corba,或是java、或是dcom、或是midas,你的对象总能互相通信,你在ide环境中时常会看不到具体标准的痕迹。对了,这就是程序员的梦。在程序员们逻辑的世界里,如何能容忍所有这些平台的束缚呢?我做不到,我一直试图打破一个又一个类似的壁垒,我一直就像在做恶梦,直到我发现borland可能做到。borland有同样的梦想。

想一想,为什么一个独立的软件,不能成为一个对象?自从我们发明了对象这个名词以来,似乎已经有太多的人在用这个招牌来吆喝自己的产品了。事实上他们都是对的,因为每一个独立的软件都是一个货真价实的对象。因为它们独立,所以它们满足对象的最基本条件:封装。至于继承,在新软件中使用旧的代码,是不是继承?还有多形,写一个类似的程序,把它和现在的软件放在一起组成一个组,分别实现不同的功能,是不是多形?对了,只有独立封装才是对象是与不是的标准。有自己的名字,有自己的数据,有自己的方法,为什么不是一个对象?是的,这都是对象。

在程序员们逻辑的世界里,这些对象,那都是活生生的生命啊。那都是他们的将士,时刻听从他们的指挥。可是那些讨厌的操作系统,那些数以万计的语言,那些为某些公司专用的标准,这些所谓的平台,他们扼杀了这些生灵。平台让对象们离开出生的家乡就不能生存,还让他们互相不能认识对方,不能用长勺喂饱别人。

还好软件世界里还有那么多真正的程序员存在,还好在关心对象命运的公司也不止一家。这些公司(至少有800多个吧),他们组成了一个组织叫对象管理组织(omg),他们出了一个标准叫corba。corba认识所有这些对象,这些独立的软件。corba还让他们互相认识,请求对方为自己完成自己力不能及的事情。

是的,我们不再需要要求所有的对象都必须符合dcom的二进制代码规范,在除windows以外的世界,我们找不到任何合手的软件来生成这些代码块。我们也不需要所有的程序员来学习java语言,我们可以用自己习惯的语言。任何旧的代码都是程序员自己带出来的兵,我们今天不需要去遗弃他们。

如果现在有人对我说他用unix上的java程序和他的windows下的c++程序一起集成了一个新的系统,我不会感到奇怪,因为borland的visibroker、jbuilder和c++builder让你可以做到。如果有人对我说,他的ejb可以和corba对象互相认识并能友好交流,我不会感到奇怪,因为如果你在appserver框架下开发ejb,那么它本身就能是一个corba对象。java对象必须存活在某个小一点但完善一点的框架环境之下,但这并不意味着它们不能通过类似于borland appserver这样的框架环境来融入corba的大家庭之中。如果明年有人对我说他拿windows下的delphi代码(包括界面描述)到linux下编译了一个linux下的可执行程序,跑起来样子还跟windows下的一模一样,我也不会奇怪,因为用delphi for linux,你可以做到。

只有dcom对象现在还不能适应这个全世界大团结的美好环境。好在微软并不是那么万分的顽固。至少他们想把他们的新语言c#也弄一个idl2c#规范出来,这样将来用c#也可以开发corba对象。甚至他们在dcom之外,还能重视soap,因为soap容易融入corba之中,实际上他们已经在申请这么做。哦,soap是什么?其实不过是xml。用xml作什么?corba对象间传送的(一般来讲)是扁平的消息,结构化的消息最特殊情况下如一个对象则很难传送。用xml来包装一个对象,然后把xml文件整个传送出去,就可以传送对象了。其实用java也可以传送对象,只不过双方必须都是java程序罢了。鲍尔默先生(微软总裁)讲xml必将战胜java,不是没有道理,而只是忽略了需要借助于corba之力的事实(当然凭借微软的实力,他可以不用现存的corba产品,但它必须有类似的产品,同时这个产品应该可以和corba互通,否则就失去了跨平台的意义)。

将来会有人跟我讲,他在服务器上实现了java所写的midas服务器程序,他用datamodule封装了所有的业务逻辑,用ejb的形式放在某个框架环境(ejb server)之下,该datamodule可以在任何平台下用任何语言中的tclientdateset之类的东西来访问。如果听到这些话,我不会感到奇怪,因为即便是从当前的技术基础来讲,borland都有能力能做到这样。如果将来有人跟我讲,他的微软格式的软件对象可以跟corba对象互相认识并能紧密合作,那我可能有些高兴,但仍然不会奇怪,因为只要微软愿意,borland可以做到。

程序员们逻辑的世界是一个没有国界的净土,这里不允许任何的霸权存在。如果你觉得这只是一个梦想,那么请允许borland能和你一起做梦直到美梦成真。

 

作者简介:杨少雄,南京大学计算机系毕业,高级程序员,

北京borland公司系统工程师

 ↓相关文章:
© 2006-2008 All Rights Reserved