《Borland传奇》笔记

作者: 李维
出版社: 电子工业出版社
出版年: 2003

Turbo Pascal 定价为49.95 美金, 以极佳的品质和令人不可思议的低价格成为当时最具吸引力的开发工具。

走自己的路,让别人无路可走。低价的卷也是生存之道之一。

Turbo Pascal 1.0 版本发布于 1983 年 11 月 20 日,第一代 Turbo Pascal 是个人电脑上编译器发展的一个里程碑;1984 年 4 月 17 日,Borland 发布 Turbo Pascal 2.0。在功能上,扩展了 Pascal 的特性;在语法上,吸取了 C 语言等的特性。最后一个版本为 Borland Pascal 7,后来被 Delphi 1.0 替代。

Borland Pascal For Windows 是后来 Delphi 的根基,Borland C/C++ Builder使用的Framework 仍然是以Object Pascal 为核心的组件Framework,而不是纯粹的C/C++程序代码,Microsoft 的Visual C/C++ 小组有60%的成员是从Borland 挖来的,千万不要小看Microsoft,他们是非常精于模仿的。Microsoft 有天下无
敌的三大绝招,那就是"打不过你就模仿你(这让我想起电影秘密客)。再打不过就和你比流血,看谁流得久(这让我想起吸血鬼)。最后如果再不行的话,那就挖光你的人。许多名满天下的重量级软件工程师都是由Borland 培养出来的。

所谓消费型软件,是指可以被所有计算机使用者使用的软件,而不是只给程序员或是开发者使用的软件。Microsoft拥有两大"消费型软件":Windows操作系统和Office, 这两类软件才是最赚钱的产品。

Borland C/C++4.0 的品质实在不好,由于Borland 太急于推出4.0,因此并没有在最后阶段修正许多的臭虫,又没有经过最后系统微调的工作,同时又过于大胆地加入太多先进的技术,造成了整个产品的不稳定,而犯下了大错。

OCF 的架构真是个好东西,但却无法完整地支持OLE,因为OLE 的发展是掌握在Microsoft 手中的,因此虽然OCF 的架构良好,终究在功能上不及对手。Microsoft 结合操作系统、开发工具和应用程序的手段真是无往而不胜。击败Lotus、Borland 是如此,歼灭Netscape 亦是如此。

生态的主宰者制定游戏规则。

IBM 主要是靠硬件和大型软件为主,不像Borland 这可是生命之争。因此IBM 只是兴起玩玩,随即放下。所以我觉得在PC 平台使用IBM 的工具是很危险的,因为IBM 随时都可能会放弃这个市场。

Google,IBM,微软这些大公司都是这个德行,随时弃坑。

Optima++的组件架构(类似Delphi 的VCL)完全是以纯正的C/C++程序代码撰写的。这可不得了,因为这代表Optima++是一个融合了Visual C/C++和Delphi 两大王者开发工具为一身的超级赛亚人工具。Optima++一个如此有潜力的产品就这样消失了,真是令人遗憾。Optima++应该有很好的机会可以成功的。我相信,如果当时Sybase 知道C++Builder 后来的成果,可能就不会放弃Optima++了,而C/C++的RAD 工具一直要到后来的C++Builder 来完成这个梦。

Borland 终于在Borland C/C++5.02之后宣布停止此条产品线的开发,Borland C/C++的光荣历史也就从此打住,真是令人不胜感叹,而Visual C/C++从此在C/C++开发工具市场中再也没有对手。不过没有竞争的市场的确会让人松懈,后来的Visual C/C++进步的幅度愈来愈小,MFC 也数年没有什么大进步,不像当时和Borland C/C++竞争时每一个版本都有大幅的改善。看来寡占的市场的确是不好的。

"是Turbo Pascal 诞生了Borland,但却是Object Pascal 给予了Borland 重生的机会!"。Borland 靠Pascal 起家,通过C/C++绽放光芒,进而达到了巅峰的状态,随后又再次靠着Pascal 浴火重生。Delphi 的崛起也在软件工具业界产生了巨大的影响。Delphi 不但激活了Windows 平台上RAD战争的序幕,开启了Windows 平台主从架构的改变,同时也对组件技术做出了巨大的贡献。直到现在,Delphi 创造的组件技术仍然深深地影响了JavaBeans 以及.NET 的组件思想和技术。

Borland/Turbo Pascal 的高明之处便是由Anders 使用汇编语言撰写的Pascal 编译器不但编译快速,而且能够产出极为有效率的机器码。

Anders 另外一个重要的决定便是改善Borland Pascal 程序语言,让这个新的开发工具程序语言具备面向对象的功能。这在当时是非常重要的决定,因为不但需要大幅修改编译器,也正式将Borland Pascal 超越Pascal 之父对Pascal 定义的结构,让Pascal 拥有现代语言最新的功能。虽然这个决定有很大的因素是因为Borland 决定通过面向对象的方式建立新一代的Framework 和组件架构,因此需要程序语言方面的支持。不过,这在当时整个信息界对于面向对象技术还很陌生的阶段,的确是一个很大胆的决策。

Borland 希望在OWL 之后建立一个全新的Framework,这个Framework 能够让程序员快速开发Windows 应用程序,并且完整地封装Windows 操作系统中的对象。此外,Borland 也希望定义一个标准的组件架构,让使用这个开发工具的程序员能够通过Framework 和组件架构来开发各种组件,包括可视化和非可视化组件。这个Framework 就是后来的VCL(Visual Component Library)。在这方面,Borland做得非常成功。如果各位读者有VBX 的经验,就会知道当时,Microsoft 定义的VBX 规格简直是一团混乱,根本像是拼凑出来的东西。在当时开发VBX 组件痛苦不堪,后来Microsoft也彻底放弃了VBX。

Anders 在Delphi 1.0 成功之后,曾经接受媒体的访问,叙述他心中的Delphi 2.0 想做的功能。当时Anders 就说他希望为Delphi 加入Garbage Collection 的功能,因为Object Pascal在建立对象方面是使用Heap-Based 的方式,因此为了减少Delphi 程序员可能发生的错误并简化Delphi 程序代码的撰写,他希望加入Garbage Collection。现在的Microsoft 的.NET 就内建了Garbage Collection 的功能,而这个想法在7 年前便已经存在于Anders 的脑中了。

垃圾回收不一定是个好主意,就是个垃圾。

除了Garbage Collection 之外,Anders 也想为Delphi 加入更多Stack-Based 的能力(是巧合吗?.NET 的IL 也是Stack-Based 的语言),并且持续地改善Delphi 的编译器,加入更多的编译器最佳化功能,让Delphi 的程序代码执行速度能够超越C/C++。

Anders 亲手打造的32 位编译器不但编译速度奇快,编译出的应用程序品质更是无话可说。在当时,Delphi 2.0 产生的执行程序代码屡获专业媒体和实验室的评比大奖,尤其在整数运算方面,更是比VC++执行得还好。在一般应用程序方面,也和VC++的程序代码不相上下。整体来说,只有在浮点数方面落后VC++。这也是后来Borland 编译器小组和Anders 激活Borland 下一代编译器项目的原因之一,目的是为C++Builder 和Delphi 开发一个共享的后端最佳化编译器。不过很可惜的是,Anders 稍后离开了Borland,没有参与完成这个最佳化编译器,否则Borland 的编译器应该会比现在更具威力。

由于Anders 的理想无法被接受,因此在Delphi 3 的发展中后期阶段,Anders 并没有介入太多Delphi 3 的开发工作。

PowerBuilder 和Gupta 数年辛辛苦苦建立起来的主从架构王国,只经过短短的1、2 年就被VB 和Delphi 所鲸吞蚕食是有许多原因的。PowerBuilder 和Gupta 当初风行的一个重要因素是提供了连接到各种RDBMS 的驱动程序,以提供开发数据库和主从架构应用系统的能力。但是当VB 和Delphi 都分别提供了ODBC 和BDE/IDAPI 技术连接更多的数据库服务器之后,PowerBuilder 和Gupta 的优势也就不再了。

Anders Hejlsberg 这位不世出的软件天才,是目前全世界最顶尖的软件技术人员之一。论实现技术,Anders 可能是目前的第一高手,因为他精通程序语言、编译器技术、开发工具、Framework 以及系统架构。Anders 使用汇编语言撰写编译器,其功力无人能出其右。在Anders 离开了Borland 之后,几乎没有人能够修改Anders 的编译器。在大多数Borland 开发工具使用者的心中,Anders Hejlsberg 是永远的巨星。

Danny 在Delphi 2 之后便有大将之风,开始负责Delphi 最低阶的编译器以及RTL(Run-Time Library)的工作。Danny 是美国San Diego 大学毕业的,主修就是编译器技术。在Delphi 4 之后,Danny 几乎成了RAD 部门主要的Architect,负责了RAD 大部分产品的研发工作,甚至又成为Microsoft 再次挖角的对象。

Danny 在接手Delphi 的开发大任之后,就开始为已经停止开发一段时间的Object Pascal 语言本身进行演进的工作。此外,Danny 也开始为Delphi 底层的RTL 进行改造,并且为Delphi 的编译器加入更多最佳化的功能。。同时Danny 也在Object Pascal 程序语言本身中加入接口(Interface)的机制,让Object Pascal 和Java 一样对接口程序设计都提供First Class 的支持。

Borland 证明了只有她能够和Microsoft 抗衡,也是在Windows 平台下,除了Microsoft 之外唯一的独立开发厂商。

C#在许多方面都学习了Java,却又加入了Object Pascal 的优美特性,成功地塑造了新语言,分散了Java群组的使用者。Gartner Group 的调查就显示了C#将同时侵蚀C/C++和Java 的使用群,更不用说许多原有的语言了。

Microsoft 提倡.NET,最重要的目的是提供一个足以和Java 平台对抗的"企业平台"(Enterprise Platform)。Microsoft 希望企业能够使用.NET 作为企业应用系统的
核心平台,根据这个企业核心平台再开发各种应用系统,连接新式的移动设备(Mobile Device),形成企业应用系统需要的完整信息供应链,提供类似目前Java 拥有的企业业务。Microsoft 希望通过.NET 打入企业市场的企图是不言而喻的。

delphi 依然在发展。从独立开发者的角度看,即使2023年了,Delphi 在 RAD依然是无敌的。

正文完
 
评论(没有评论)