⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 borand传奇,有关borand公司的书籍
💻
📖 第 1 页 / 共 3 页
字号:

第四章  未完之传奇

"成功产品的背后有着更多不为人知的秘密!"

Chuck的秘密计划

Chuck像个藏镜人。虽然他始终是Delphi最重要的三个人物之一,但是却一直不愿意
站在最前线面对大众,而宁愿躲在幕后进行令人惊讶的软件革新工程。Chuck进行的
许多开发和研究并不广为人知……

当Anders离开了Borland之后,Chuck短暂地成为Delphi的总Architect。不过,Chuck
负责Delphi的开发工作后不久,就把Delphi Architect以及重要的工作交由Danny来
负责,因为Danny早已显示了大将之风,成为Chuck最为信任的软件专家。而Chuck呢?
虽然他仍然负责Delphi中许多重要的工作,但是后来大部分的时间是花在新技术和新
产品的秘密研究之中。对于一些Delphi例行性的工作,Chuck并不会花费太多时间。

在Delphi 3的研发阶段,Chuck的主要精力并不是在Delphi 3上,因为Danny和Zack负
责得很好。Chuck当时主要是进行两件重要的研发工作,即Delphi的Java编译器以及
Apollo计划。

原来,在开发Delphi 3时,Anders和Chuck都已经预知了Java将来必会成功,成为重
要的语言和软件技术。因此Anders和Chuck都知道必须在Java方面进行一些因应之道,
以未雨绸缪保持Delphi的竞争力。后来Anders离开了Borland,而Chuck则选择了投入
资源研究Delphi和Java的整合技术。当时Chuck的想法是为什么不能够开发一个类似
Java的JVM,直接把Delphi的程序代码转换为Java的ByteCode,让Delphi的应用程序
直接在JVM中执行呢?甚至,当时Chuck还想,为什么Borland自己不开发一个Delphi 
JVM,让Delphi也可以执行在Windows、Linux、Solaris和Mac OS之中呢?

有了这个疯狂的想法之后,Chuck立刻要求Borland的高层批准这个研究计划,让他能
够有资源进行研究工作。由于当时正值Anders因为不满在Borland没有足够的研究资
源而离开了Borland,进入Microsoft一展心中的鸿图。因此,Borland高层当然不愿
得罪Chuck,以免他也离开Borland。由于当时Delphi 3的进度在掌握之中,而且
Delphi为Borland带来了大量的资源,因此Borland高层批准了Chuck的这个不可思议
的计划,让Chuck开始了研究之路。

Chuck有了资源之后,就立刻投入研究的领域,在Delphi 3的开发末期也没有花太多
的时间在Delphi上,反而加速地和Borland的编译器小组为Delphi For Java编译器进
行研发工作。在1997年中左右,Chuck有了初步的成果,已经能够把一些简单的
Object Pascal程序直接编译成Java的ByteCode、并且执行在JVM之中。这实在是一个
不小的突破,因此在当年的BorCon 1997中,Borland和Chuck正式对外公开了这个技
术,立刻引起了Delphi使用者强烈的兴趣,因为这代表一旦这个编译器研发出来,
那么Object Pascal便立刻成为一个像Java一样的跨平台程序语言,而且,如果
Borland能够继续把VCL和RTL移植进来,那么,Windows平台的Delphi程序员可以通
过这个技术同时开发多个平台的应用程序,这实在是太美妙了。

当BorCon公开了这个技术之后,Borland立刻面临了愈来愈多的Delphi使用者的询问
以及要求Borland尽早推出这个技术的压力。当然,Chuck以及Delphi研发小组也非常
兴奋,因为这代表Delphi又将有新的市场以及新的成长动力,所以Chuck立刻要求
Borland投入更多的资源,以加速研究这个Delphi For Java编译器以及相关的研究工
作。

不过,此时却发生了两件事情,最终让Chuck放弃了继续开发Delphi For Java编译器
的意图。首先,Chuck和Borland的编译器开发小组发现JVM似乎和Java语言系结得太
紧密,以致JVM的许多伪指令都和Java语言的架构系结在一起,无法轻易地由其他语
言来提供类似Java语言的架构,除非修改这些语言架构来仿真Java语言的架构。这个
原因造成了当Chuck想把Object Pascal一些复杂的数据类型和语言架构编译成Java 
ByteCode时发生了极大的困难。

第二个决定性的原因是,由于当时JBuilder已经表现得愈来愈好,Borland希望投入
更多的资源到JBuilder小组,而且不希望有其他的产品或是技术影响JBuilder的成长,
因此,Borland高层对于Delphi For Java编译技术的开发也没有很大的兴趣,再也
没有批准更多的资源给Chuck。最后,Chuck的这个Delphi For Java编译计划便宣告
终结了。这实在是件可惜的事情,不过,当时Chuck研究的东西并没有白费,因为现
在Delphi小组也根据当时Chuck研究的成果来开发.NET上的编译器,希望通过以前投
入的资源和经验来开发更好的Delphi For .NET编译器。

另外一个Chuck在Delphi 3开发阶段秘密进行的研究计划则更为重要了。当时我更期
望这个技术能够出现在市场之上,不过可惜的是,最后也由于Borland高层要求Chuck
投入Kylix的研发工作而一直拖延到今日都还在软件实验室中,这就是属于Data 
Component技术的Apollo计划。

Apollo项目的缘由要从Delphi 2开始说起。在Delphi 2开发时,Anders一直想在Delphi
中建立一个Garbage Collection的功能,而Chuck则希望继续扩充VCL的功能为VCL加
入Data Component的能力。由于VCL使用的组件架构在连接数据时是使用数据感知组
件(Data Aware)技术,但是许多真正使用面向对象技术的程序员反而对使用数据感知
组件相当地反感,而且在大型面向对象项目中,数据感知组件也被证明是不适当的。
因此Chuck为了赋予VCL开发大型面向对象项目的能力,决定加入Data Component技术

所谓Data Component技术,是指VCL架构可以代表实际世界中的domain对象,这些
domain对象可通过VCL的技术直接储存在数据库之中,或是从数据库中取出,类似EJB
中的OR Mapping(Object-Relational Mapping)技术。如此一来,Delphi的程序员可
以在Delphi中直接使用VCL组件来代表如员工和公司等实例(instance),而且可以随
时把员工和公司实例储存到数据库中,再从数据库中取出员工和公司成为对象,而不
需要使用数据存取对象直接处理数据库中的数据。Chuck早在五六年前就想在Delphi
中实现目前Bold等公司提供的Object Instance技术。

没有想到,就在Chuck进行Apollo项目到了一半的时候,由于当时Borland的CEO Dale 
Fuller先生看好Linux的发展,因此下令所有Delphi小组的成员都必须投入到Linux
开发工具的研发工作,全力为Kylix催生,于是连Chuck也被要求先暂缓所有的研究计
划,投入Kylix的开发工作。其实,当时我就非常反对像Chuck这样的顶尖人才进入
Kylix小组撰写程序代码,因为这实在是非常浪费的事情。Chuck应该进行更为重要的
研究计划,而不是只开发一般的工具而已。但是,当时Borland高层认为Linux将可带
领Borland一飞冲天,因此仍然坚持所有的人力都必须投入。不过,市场就是变化得
这么快,在Chuck和Danny都投入到Kylix的开发之后,虽然Delphi小组几乎以创记录
的时程在1年半左右就在一个新的平台开发了一个新的产品线,但是在Kylix推出之
后,Linux平台的疯狂热潮却开始快速消退。所有投入Linux的厂商再也无法仅以沾
上Linux的名称就可以让股票日创新高,市场终究是要回到基本点,只有真正获利的
公司才能够在市场成为赢家。

在Chuck被Kylix开发工作延误了近2年的时间后,Apollo再也不像当初那么吸引人了,
因为市场已经出现了类似的科技,例如EJB的OR Mapping技术和Bold等公司的产品。
如果Borland当初能够让Chuck全力发展Apollo计划、并且在其他公司之前推出Apollo
的成果,那么Delphi将可以在OR Mapping方面占有领导的地位,Borland研究的OR 
Mapping技术说不定还可以被SUN授权使用,就像Oracle花了大钱从WebGain购买类似
的技术一样。Anders和Chuck这两位拥有一流技术和眼光的技术人物,或多或少地被
许多平凡的管理人物糟蹋了好几次。

Chuck本身是一位非常和蔼可亲的人物,我曾经多次和Chuck交谈,每次谈话时Chuck
总是笑嘻嘻的,似乎没有事情可以让他感到忧虑。如果不知道Chuck的人和Chuck交谈,
那么可能没有人会相信,这位看起来像是好好先生的人在软件方面有这么惊人的成
就和高深的造诣,而Chuck一头接近红色的头发也让我第一次见到他时被吓了一跳。


当Chuck和Danny被征召开发Kylix时,其实也不是非常顺遂的。在Kylix激活之后,照
例是由Danny负责Linux上编译器和RTL的研发工作,而Chuck则负责VCL和CLX方面的工
作。由于要在Linux上开发集成开发环境,必须先在Danny负责的底层RTL和编译器完
成之后才能够开始设计。但是,Danny在把Delphi的RTL和编译器移植到Linux的过程
中发现了一些Linux的臭虫,因此,当时Danny在Linux的论坛上公布了他发现的臭虫,
并且希望Linux的社群能够修改这些问题,如此一来Borland才能够继续研发Kylix。

不过,也许是Linux的社群拥有排外的情绪,一直认为Borland不是正统的Linux软件
厂商,因此对于Danny指出的Linux臭虫也嗤之以鼻,认为Danny什么都不懂就来说是
Linux的臭虫。由于Linux论坛上的人非常的不友善,而且坚决不承认Danny提出的是
臭虫,因此也惹得Danny非常不高兴,认为做软件的技术人员为何不能就事论事,明
明有问题却死不承认。于是Danny便在Linux论坛上和这些人发动了笔战,愈吵愈轰动,
最后演变成了两派人马互相批评。我在当时也想不通,为什么明明Danny已经指出了
Linux有问题的地方,而这些也是搞软件的人却有如此的反应?这些人是不是太小心
眼了呢?以Danny如此功力深厚的人反而被这些Linux的人说成是不懂软件开发真是笑
掉人的大牙,这些人应该看看Danny做出了什么东西,看看他们能不能做得出来再说。

由于Danny无法在Linux论坛上得到结果和支持,因此一怒之下干脆自己来修改Linux
的臭虫,好让Kylix能够继续开发下去,不再需要这些Linux社群的帮忙。这也是为什
么在安装Kylix时,Kylix不但会检查使用者Linux使用的版本,并且会安装Patch档案
以修改Linux操作系统的问题。Danny选择了安装额外的Patch档案的方式来解决Linux
的臭虫,而不是直接修改Linux的核心,再由Borland分发Linux Distribution。当时,
在Danny解决了Linux执行时期函数库的一些臭虫之后,Kylix才能够顺利地开发下去。
后来,在Kylix小组开发Kylix的集成开发环境时也发现了一些XWindow的臭虫,Danny
也是选择由Borland自己来修改加以解决,而不需要Linux社群的帮忙。

当然,由于Danny和Linux社群之间的大战也让Danny憋了一肚子气,在Kylix推出之后,
就把随后相关的开发工作交给Kylix小组来负责,Danny则专心到.NET研发小组为Borland
开发.NET上的下一代开发工具了。Danny离开Linux是Linux的损失,这些和Danny争吵
的Linux程序员不知道他们在Linux上损失了一个天才型的软件人员。有时我想,一些
庸才不就是不断地攻击天才吗?难怪古人说"不招人忌是庸才"了。看了Danny大战Linux
论坛这一幕,我也只能在旁摇头叹息,不过我个人倒是很高兴Danny和Chuck全力开发
NET产品,因为我一直想使用Borland的开发工具学习和开发.NET应用程序呢。

目前,Chuck在Borland进行的工作是在.NET上研究先进的技术,包含了在2002年
BorCon上Chuck公开展示的新语言--Charlotte。Charlotte主要是提供Web Service的

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -