Borland旗下多种开发工具再度迎来更新
2021年10月上旬消息,包括多款GUI开发集成环境的Delphi, C++Builder 和 RAD Studio这些宝蓝公司曾经的风云一时的产品再度迎来更新,虽然Borland软件公司已经被Embarcadero(英巴卡迪诺)收购不复存在了,但其造就的经典产品依然在持续更新,有感于此,笔者更觉非常有必要记录下这些变化。Borland公司是一家成立于 1983 年的软件公司,总部设在美国加州的Scotts Valley,是领先全球的软件交付最优化(SDO)平台独立解决方案供应商,业务遍及全球 。Borland软件公司(有译宝蓝公司或宝兰公司,Borland Software Corporation,NASDAQ:BORL),是一家总部位于美国加利福尼亚州的软件公司,以提供软件开发生命周期所需的各种工具,以及已经变成今天的Delphi的Turbo Pascal而闻名于世。2009年5月6日,Micro Focus宣布以7500万美元收购Borland。
公司提供的软件和服务有助于人员、流程、技术的配合,以使软件的商业价值最大化。在软件开发公司领域 Borland 公司几乎是高品质软件代名词!DOS时代 Borland Turbo C/C++独领风骚,风靡全球,DOS时代最强大的开发工具。其产品线包含:C++ Builder CaliberRM Delphi Turbo Delphi JBuilder KylixOptimizeit SuiteInterBase JDataStore Borland Enterprise Studio,for C++, Mobile and Java Borland Enterprise Server StarTeamTogether
Borland大事记
1983.5.2 Philippe Kahn和Anders Hejlsberg在美国Scott Valley共同成立BorlandInternational公司。同年11月,发布Turbo Pascal,Borland一举成名;Pascal也是本站作者学习计算机的第一门语言。
1984 发布内存常驻工具软件SideKick,成功打入消费软件市场。
1985 发布Borland第一个,也是最后一个Basic开发工具产品:Turbo Basic。从Ansa公司购Paradox。
1986 发布Turbo Prolog。
1987 发布Turbo C 1.0,提供C语言开发集成环境工具。Turbo Pascal 4.0也在这一年推出。
1989 在购入Ansa公司(1987年)后,推出Paradox 3.0。
1990 在Turbo C基础上推出C++开发工具Turbo C/C++,该产品也被称为Borland C/C++。
1991 购入Ashton-Tate公司,获得dBase。发布电子表格软件Quattro Pro。该软件生不逢时,在与MS Excel、 Lotusl-2-3残酷竞争之后,最后败给Excel,被Novell收购。
1992 发布Borland C/C++3.0。这是第一个基于Windows的C++集成编程环境软件。在Borland C/C++3.1中加入了OWL作为核心。兼并Ashton-Tate公司,推出dBase 1.0。同时也取得真正的RDBMS——InterBase。
1993 匆匆推出旨在与Visual C++对抗的Borland C++4.0。该版本尽管有不少创新,但最终被证明是失败的。发布DOS版本的dBase-IV 2.0,并被证明是可靠的数据库产品。
1994 发布dBase for Windows 5.0。虽然承袭dbase名号,但其核心却是WordTech公司的Aragon for Windows。Borland在Comdex上了解到Aragon for Windows后,通过并购获取了这项技术。而真正的dBase只留下调试器于dBase 5.0中。在面临C/C++战场三面夹击的情况下,推出以OCF技术支持OLE的Borland C++4.5。此役之后,Microsoft占据C/C++市场半壁江山,而Borland的市 场占有率却滑落到30%,开始走下坡路。
1995 Philippe Kahn因经营不善辞去CEO一职,但继续留任董事会成员。CEO由Gary Wetsel接任。而Philippe Kahn则由于产品理念分歧的缘故,自己开办Starfish Software公司,致力发展SideKick等应用软件。后Starfish在无线通讯等领域颇有建树,并最终被Motorola以数千万美金的高价收购。同年情人节发布Delphi 1.0。该产品一炮而红,成为扭转Borland命运的转折点,也成为众多Delphi开发者的"初恋情人"。
1995 发布品质最好的Paradox For Windows 7.0。一年后,Paradox被卖给Corel公司。同年11月,由于无法忍受Philippe Kahn对Borland的一再挖角,董事会决定将其逐出公司。
1996 发布以32位编译器为核心,并且大幅支持C/S编程的Delphi 2.0。发布IntraBuilder 1.0,是业界第一个数据库Web工具。但由于太过先进等 原因,叫好不叫座。一年之后,Borland宣布放弃IntraBuilder开发。
继Philippe Kahn之后,Anders Hejlsberg也离开了Borland。Delbert Yocam随即成为Borland CEO。购入中间件Entera技术,准备进军大型的基于UNIX平台的软件市场。
1997 发布Delphi 3.0。该版本较好地平衡了COM/DCOM支持和分布式多层架构,并成为全球热卖的产品。发布C++Builder 1.0。尽管Borland并没有作太多的市场推销活动,但该工具推出之后仍广受好评,被誉为"C++开发者天堂"。C++开发者终于可以和Delphi开发者一样,通过RAD的方式进行编程。
Borland委托Dr. Niklaus Worth研究小组开发出效率优良的Java JIT编译器,随后发布Borland第一个Java工具:Open JBuilder 1.0,但市场反应不如预期。并购Visigenic Software公司,取得CORBA技术,并很快据此开发出VisiBroker。通过与Netscape的合作,成功地向大众展示该技术。发布dBase 7.0。产品虽好,奈何时势不再。
1998 宣布公司更名为Inprise,希望藉此表达Integrating the Enterprise的公司发展目标理念。改名行动以及"打造行销导向Borland"的计划最终都一败涂地。
发布匆匆研发的Delphi 4.0,在市场遭到惨败。Delbert Yocam的好大喜功再次让Borland付出沉重代价。
JBuilder 2.0发布,Borland的Java开发工具渐入佳境。
1999 在和Borland就"Brain Drain"事宜展开诉讼并发现局势不利之后,Microsoft提议庭外和解并投资Borland。
Delbert Yocam被解雇,Dale Fuller任Borland CEO。发布Delphi 5,一扫Delphi 4带来的耻辱。
JBuilder 3.0发布。一年后的JBuilder 3.5纯以Java打造而成,毕其功于一役,充分体现了Borland的实力。出售dBase予Ksoft(后更名为dBase Inc.)。
2000 发布JBuilder 4.0,是继JBuilder 3.5的乘胜追击之作。推出之后很快就成为市场的霸主。和Corel的并购案失败。
2001 发布JBuilder 5.0,大幅改变人们对JBuilder"不适用于团队开发"的印象。同年底发布的JBuilder 6.0,整合UML和Extreme Programming,更是支持EJB的最好开发工具。
2002 发布JBuilder 7.0,最终奠定在Java开发工具市场唯我独尊的地位。并购VMGEAF,公司,获取OptimizeIt,并将其整合到JBuilder产品线。同年10月,并购Starbase公司,准备提供软件应用平台。
随即,对TogetherSoft的并购案,给业界带来极大震动。发布Delphi 7,被认为是Windows平台原生开发工具向.NET平台开发工具过渡的一代产品。随着Delphi 6、7的发布,Kylix(Delphi for Linux)也不断更新,品质也在持续的精进中。
Borland在历经半年寻找买主未果后,不久宣布将独立其IDE部门成为Borland的子公司,并命名为CodeGear。
2006年2月,Borland宣布要出售旗下的整合开发环境业务,并迎向应用程序生命周期管理(application lifecycle management;ALM)业务。Borland一向以开发工具闻名,不过近年来却饱受开放原始码产品的竞争,特别是来自Eclipse基金会的 Java IDE,使得Borland的IDE营收比重不断下滑。
Borland本来计划要在2006年9月以前就卖出IDE业务,但由于与众多买家价格谈不拢而作罢。Borland执行长Tod Nielsen表示,有许多买家都对该公司的IDE业务很有兴趣,但他们所提供的价格无法真正反映Borland IDE业务的核心价值。
CodeGear公司成立于2006年11月14日.主要负责Borland的集成开发环境(integrated development environment;IDE)业务,是Borland的全资子公司
2008年5月7日,Thoma Cressey Bravo下的公司Embarcadero Technologies,宣布他们已经签署了一份对Borland Software Corporation (NASDAQ: BORL) 的资产收购协议, 收购其旗下的CodeGear公司。交易将会在30-60天内结束。公司合并后,将会在Embarcadero Technologies名下运作。
2009年5月6日,英国软件商Micro Focus宣布,公司将以7500万美元现金收购Borland软件公司。该笔收购已经获得两家公司董事会的批准,整体并购事宜将在2009年第二季度完成。
Embarcadero与Borland联姻时的外部评论

Embarcadero,一家不为国人所知的数据库应用处理厂商,却在近日成为焦点。规模不大但野心不小,用2000多万美元完成了一笔相当划算的买卖——收购Borland旗下的CodeGear全资子公司。说到此处不得不提CodeGear(上文也有提及),CodeGear是Borland两年前拆分出来的IDE部门,是没有满意价钱的产物。Borland早就想抛弃IDE业务潜心研究软件生命周期的应用,但苦于迟迟找不到卖家,只好暂时将IDE部门拆分出来。
IDE部门是Borland曾经的辉煌、发家的根本,但是就因为战略决策的失误、商业竞争的压制、开源产品的发展等等因素导致毛利逐年下降,最终被Borland所放弃。2千多万美元就把屡获大奖的C++ Builder、Delphi、JBuilder以及近年火热的PHP/Ruby开发平台等全套产品线收归旗下,更重要的是,全球几千万庞大的忠实开发群体更是让人眼馋。能不划算么?看来Borland已经是急于甩卖了。
Embarcadero(英巴卡迪诺) Technologies公司成立于1993年,是一家软件公司,生产,开发,支持和许可产品,并提供相关的软件服务。它的总部设在旧金山,美国的加利福尼亚州,并于2007年成为私有。在2015年它成为井寺软件的一个部门。
英巴卡迪诺致力于为数据库专业人士和应用开发人员提供各种创新的辅助工具,方便用户在自己习惯的环境中设计、开发和运行维护各种应用系统。主要面对IT开发人员,独立软件供应商(ISV)、增值代理商(VAR)、数据库专业人士和大型企业IT人员。用户遍布70多个国家,全球拥有3百多万用户,90% 的“全球财富100”用户,97% 的“全球 2000”用户。
开发操作系统:Windows, Mac, iOS, Android, OS X El Capitan, Linux
相关软件名称:
C++Builder | 开发者工具 | 10.2

Delphi (IDE) | 开发者工具 | 10.3

InterBase | 开发者工具 | 9.0.3.437

JBuilder | 开发者工具 | 3.4
RAD Studio | 开发者工具 | 26

Rapid SQL | 开发者工具 | 17
Turbo Pascal | 开发者工具 | 5.5
Delphi 11, C++Builder 11 和 RAD Studio 11 已正式于2021年10月上旬发布,代号 "Alexandria",新版本引入了许多重要的新特性和增强功能,改进了 IDE 的用户体验,旨在提升开发者的生产力。例如支持高分屏(4k+ 显示器);支持 Windows 11、Android 30 API 和 macOS 64 位 ARM M1 处理器;引入 C++ 格式化程序;增强的 Delphi 和 C++ 之间的跨语言支持;增强 FMX 设计器等。

IDE 新功能和增强功能
支持高分屏,支持 4K 显示器,字体和图标的显示更清晰。
针对多窗口和多显示器显示的改进
完全重构的“欢迎界面”
新增 C++ 代码格式化程序
改进对 VCL 和 IDE 的远程桌面支持
目标平台和编译器
新增 Delphi macOS 64 位 ARM 编译器和工具链,包括为 Intel/Arm AppStore 提交构建通用二进制文件
Delphi 语言支持二进制小数和数字分隔符
改进 C++ 工具链,对 C++ 类型进行了全面的 Delphi 风格 RTTI 改进,包括在 Delphi 风格类型上使用 typeid
改进 Delphi 类型的 C++ 风格 RTTI
改进 CMake 质量,以及大幅度优化 Win32 和 Win64 上的异常处理
使用 LSP 增强 Delphi Code Insight 功能
.pas 文件中使用的包含 (.inc) 文件的 LSP 感知
LSP 服务器支持自动重启
支持使用 Tab 键自动补全代码
支持 Class helper
指派数组时提供建议
支持使用 Visual Studio Code 来编辑 Delphi 源代码以及完整代码补全
数据连接
新版本中的 FireDAC 为 PostgreSQL、Oracle 和 Firebird 数据库提供了特定的改进
HTTP 和 REST 客户端库对超时机制进行了扩展,支持 HTTP/2、TLS 1.3、Base64 URL 编码
新组件 TRESTRequestDataSetAdapter 简化了将数据集上传到 RAD 服务器的操作
更多更新详情查看发行公告。
Delphi风云录
Delphi,从1994到2022,20多个版本,经历了这些变化。
Delphi曾经是一门非常受欢迎的应用程序开发工具,一起来了解它28年来的变化。
它由Borland推出的可视化编程环境,许久之前,了解过Pascal语言的同学,对Delphi就不会觉得陌生;笔者在上大学的时候,将其作为计算机语言的自修课,十多年过去了,再来回顾一下其发展历程。
Delphi是一个集成开发环境,使用的就是由之前Pascal语言发展而来的Object Pascal语言,1994年至今,最新的版本已是RAD Studio 11(XE11)。
Delphi 1.0

1994年,Borland推出的Delphi 1.0版本,运行于16位的Windows 3.1 系统,从而支持视窗操作系统的应用程序开发。
Delphi 2.0

1996年,Borland推出2.0的Delphi。它以32位编译器为核心,同时也是第一个32位的系统,支持Windows和C/S开发。
Delphi 3.0

1997年,Borland推出3.0的Delphi。运行在Windows 95系统,加入了接口的机制,并提从了code insight。
Delphi 4.0

1998年,Delphi 4.0推出,需要运行在486的计算机上,最低16M的ROM。这个版本加入动态数组和方法覆盖等支持。
Delphi 5.0

1999年,Delphi 5.0推出。5.0这个版本增强了IDE和调试器及数据库的支持,简化了internet的开发。不少同学是从这个版本开始接触的Delphi,那时候,国内拥有计算机的同学已经不少了。
Delphi 6.0

小编第一次听说世界上有Delphi这个软件的时候,就是这个版本。只不过知道的是Pascal,姑且就算是Delphi吧。
这个版本,提供了Web Service。增强了
code complete(代码提示),6.0的这个窗体可以自行调整大小;
新的Object TreeView树形控制面板;
新的internet应用系统的WebSnap控件组;
支持XML/XSL;
6.0的版本在2001年推出,第一批规模以上的用户,应该是这个版本吧。
Delphi 7.0

2002年,Borland推出了7.0版本的Delphi。这个版本提供了.net的过渡,完善了数据库的支持。
Delphi 8.0

8.0版本的Delphi好看了许多:)。这个版本发布于2003年,新增或者优化了ADO.net数据库功能,创建和部署ASP.NET应用程序,对语法进行了修改,如取消PChar类型。
Delphi 9.0(Delphi 2005)

9.0版本的Delphi,被称之为delphi 2005。这个版本新增或优化了:
新增新特性:多单元命名空间,内联函数和代码优化技术;
支持WinForms,ASP.NET WEB Forms在可视化环境中的开发。
支持重构来组织源代码,以提升代码可维护性和代码重用。
支持版本控制和团队开发及许多新功能。
Delphi 2006

2006版本的Delphi,发布于2005年,集成C++Builder,集成Together for Delphi,可以在同一个IDE中开发lum。
Delphi 2007(CodeGear RAD Studio - Delphi 2007)

Delphi 2007,优化或新增了:新的IDE编译环境比D7启动要快,支持VISTA界面,封装了VISTA新的API函数,支持MS Build等。
Delphi 2009 Pre-release

平台给出了升级到2009版的几个理由,其中包括
可定制的类管理器;
新的语言特性,例:
完全的RTL list和collection支持的delphi泛型;
升级了数据库驱动;
增强的构建配置管理系统;
新组件或现有组件的增加,包括微软的office ribbon风格控制。
CodeGear.RAD.Studio.2010

发布于2009年,最亮眼的功能是支持“触摸屏”,包括可触控键盘和识别不同的触屏手势,以及更智能的代码提示功能等。
Delphi XE(Delphi 2011)

11的这个版本,被称之为Delphi XE。
Delphi XE2

XE2增加了VCL Styles 皮肤、Documentation Insight(编辑注释)、增加了TOSVersion类型。
Delphi XE3

Delphi XE4

Delphi XE5

Delphi XE6

Delphi XE7

Delphi XE8

Delphi XE10

新的代码洞察技术、code insight等。
RAD Studio 11

这个版本被更名为RAD Studio 11,新功能特性官方的发行说明中有详述,喜欢的同学可以了解一下。
Delphi 12 & C++ Builder 12、RAD Studio 12 发布
Embarcadero 于2023年11月中旬宣布推出 RAD Studio 12 Athens、Delphi 12 和 C++Builder 12。

主要变化如下:
将 Visual Assist 集成到 C++Builder 的 IDE,为 C++ 语言提供一流的代码补全、代码导航和重命名重构
针对 Win64 的基于 Clang 的 C++ 编译器的显着更新预览,支持最新的 C++ 标准语言功能,并提供与外部库和 C++ 代码的更好集成
Delphi 添加新语法,包括多行字符串文字,以满足一些相关的客户端请求
面向 FireMonkey 的 Skia 支持,通过为 FireMonkey 采用新基础,在所有目标平台上渲染图形和 UI 控件时提供更高的性能和质量

为 VCL 重新设计的 MDI 和新的选项卡式 UI 架构,可帮助现有应用程序实现现代化视觉风格,用最少的改动为现有程序添加对 HighDPI 和样式的支持

新的 FireDAC 示例查询 (QBE) 组件可简化数据过滤,新的 Delphi JSON 向导可将流行 JSON 格式的数据映射添加到对象,就像使用 XML 那样

改进 IDE 的生产力和质量,使 RAD Studio 能够更轻松、更快速地执行日常任务

支持 RAD Server 中的智能 ID,让托管的 REST API 更加强大和灵活,同时保持 RAD Server 的易用性
Delphi一直在进步,不是吗?
上面说到了Delphi,我们在来聊聊 Borland C++
20世纪90年代编译器的纷争格外激烈:Turbo Pascal 的低价神话、Borland C++ 的覆盖技术、OWL 与 MFC 的优雅对决、Watcom 成就《毁灭战士》的传奇,这是一个程序员即英雄的年代。90年代的编译器战场,Borland 用49.95美元卷起行业,Anders Hejlsberg用覆盖技术在640KB囚笼中跳舞,OWL优雅却败给MFC生态。
丹麦天才与美国梦
故事的起点,要追溯到北欧的丹麦。Anders Hejlsberg,一个瘦削、沉默寡言的年轻人,却有着对代码近乎痴迷的热情。在那个计算机还是稀有物的年代,Anders 就已经在微型计算机上写出了令人惊叹的编译器。他的代码简洁、高效,就像一首首精致的诗。
1980 年代初,Anders 带着他的 PolyPascal 编译器来到了美国。那时候的美国,正是 PC 革命的黎明期。IBM PC 刚刚问世,微软的 MS-DOS 正在成为标准,而软件开发工具市场还是一片蛮荒之地。
在这里他遇到了 Philippe Kahn。Philippe 是一个典型的法国裔美国人,热情、奔放、充满商业野心。他与 Anders 形成了完美的互补:Anders 负责技术,Philippe 负责市场。两人一拍即合,决定成立一家公司,那就是后来的 Borland。
Byte 杂志上的“空城计”
Borland 的第一个产品是 Turbo Pascal。但在当时,软件公司要想成功,必须在著名的《Byte》杂志上打广告。可是,刚成立的 Borland 穷得叮当响,连广告费都凑不齐。
Philippe Kahn 想出了一出精彩的“空城计”。他约了《Byte》杂志的广告销售来办公室谈生意。当销售到达时,Philippe 让 Anders 和公司唯一的助理小姐不停地接电话,假装订单多到接不过来。办公室里电话铃声此起彼伏,营造出一种“产品火爆”的假象。
当销售等得不耐烦时,Philippe 才“百忙之中”抽出时间,向他展示了 Turbo Pascal。在那台简陋的 IBM PC 上,Anders 现场演示了编译速度。几 KB 的代码,瞬间就完成了编译和链接。这种速度,在当时需要几分钟甚至十几分钟的编译环境中,简直是神迹。
《Byte》的销售被彻底震撼了。凭着专业的直觉,他知道这将是一个革命性的产品。他不仅同意刊登广告,甚至还主动提出给予半价优惠。
49.95 美元的惊吓
然而,真正让这场战争充满火药味的,是 Philippe Kahn 那个让 Anders 差点气炸的决定:定价 49.95 美元。

Anders 是典型的工程师思维。他觉得自己的编译器是用汇编语言一行行写出来的,性能远超当时的竞争对手,理应定价数百美金。在那个年代,一套专业的开发工具卖到 500 甚至 1000 美元是常态。但 Philippe 看到的是整个市场。他要的不是单套的高利润,而是市场占有率。他要通过极低的价格,把竞争对手逼到死角,让 Turbo Pascal 成为每个 PC 程序员的标配。
当 Anders 得知定价只有 49.95 美元时,他愤怒地骂道:“你把最好的艺术品交给了一个只会数钱的白痴!”他认为这个价格根本无法体现 Turbo Pascal 的技术价值,他的版权费也会少得可怜。但市场证明了 Philippe 的正确。Turbo Pascal 以极佳的品质和令人不可思议的低价格,迅速席卷了全球。它不仅是工具,更是一种信仰——原来专业的开发工具,普通人也买得起。
640KB 的囚笼——在针尖上跳舞的 Borland C++
DOS 时代的内存噩梦
进入 90 年代,C++ 逐渐取代 Pascal,成为系统级开发的主流语言。但当时的 DOS 系统,有一个致命的限制:常规内存只有 640KB。比尔盖茨曾说:“无论对谁来说,640K内存都足够了”。
对于简单的 Pascal 程序来说,640KB 或许够用。但对于庞大的 C++ 编译器来说,这简直就是一个囚笼。C++ 的语言特性复杂,模板、继承、虚函数等机制使得编译器本身就需要大量的内存。再加上用户编写的代码、数据区、堆栈空间,640KB 很快就捉襟见肘。
当时的竞争对手,如 Microsoft C 和 Symantec C,往往需要用户配置复杂的内存管理器(如 HIMEM.SYS, EMM386.EXE),甚至需要扩展内存(XMS)或扩充内存(EMS)才能运行。这对于普通用户来说门槛太高了。
覆盖技术(Overlay):妖术般的优化
Borland C++ 3.1 的诞生,就是一场在针尖上的舞蹈。Anders 和他的团队发明了一种近乎妖术的“覆盖技术(Overlay)”。其思路非常大胆:既然内存不够,那就把编译器拆成无数个微小的模块。当编译器需要执行某个步骤(如词法分析、语法分析、代码生成)时,才把这个模块从磁盘调入内存,用完立刻踢出去,再调入下一个模块。
这种技术在今天看来不可思议,因为频繁的磁盘 I/O 会严重拖慢速度。但在当时,Borland 的工程师们通过极致的优化,将每个模块的大小控制在极限范围内,并利用智能预取技术,使得覆盖切换几乎感觉不到延迟。
蓝底白字的 IDE 神话
除了编译器内核,Borland C++ 3.1 还提供了一个革命性的集成开发环境(IDE)。在此之前,程序员写代码用编辑器(如 EDIT 或 WordStar),编译用命令行,调试用另一个工具(如 CodeView)。这三个工具之间切换繁琐,且风格迥异。
Borland 把它们全部整合在一个界面里:蓝底白字的背景,简洁明了的菜单,以及一套至今仍被无数人肌肉记忆的快捷键:
• Alt+F9:快速编译当前文件。
• Ctrl+F9:直接运行程序。
• F7/F8:单步调试(Step Into/Step Over)。
• Alt+F5:查看用户屏幕。
这套 IDE 不仅速度快,而且交互极其流畅。程序员可以在编辑、编译、调试之间无缝切换,那种“心流”体验,是后来 Visual Studio 那种“重型航母”无法比拟的。
OWL vs MFC——优雅剑法与街头格斗的血腥碰撞
OWL:纯正的面向对象梦想
如果说编译器是内功,那么类库就是招式。这场战争中,最让人意难平的,是 OWL (Object Windows Library) 与 MFC (Microsoft Foundation Classes) 的对决。
OWL 由 Borland 的资深工程师设计,严格遵循面向对象的原则。在 OWL 的世界里,每一个窗口、每一个按钮、每一个消息处理函数,都是一个对象。它采用了深度的继承体系。例如 TWindow 是所有窗口的基类,TDialog 继承自 TWindow,TButton 又继承自 TWindow。这种设计使得代码结构清晰,复用性极高。
更重要的是,OWL 引入了响应表(Response Table)机制。程序员不需要像写 Windows API 那样编写巨大的 switch-case 语句来处理消息,而是通过在类中定义响应表,将消息自动映射到对应的成员函数。这种设计,极大地简化了 Windows 编程的复杂度。
李维曾感叹:“OWL 是 C++ 程序员的梦想,它让 Windows 编程变得优雅而纯粹。”
MFC:微软的实用主义包装
相比之下,MFC 则是街头格斗。它粗糙、实用,本质上只是对 Windows API 的一层薄薄包装。其设计哲学是“快速上手”。它提供了一套宏(如 DECLARE_MESSAGE_MAP, BEGIN_MESSAGE_MAP),帮助程序员快速建立消息映射。虽然这些宏在纯 OOP 派看来是“脏代码”,但它们确实降低了学习曲线。
MFC 的最大优势在于它与 Windows 操作系统的紧密绑定。每当 Windows 发布新版本(如 Windows 95, Windows NT),微软都会同步更新 MFC,提供对新特性的支持。而 Borland 的 OWL 往往要滞后几个月甚至半年。这个劣势似乎注定是天生的。
生态之战:技术领先者的悲歌
这是一场不公平的战争。Borland 在技术上领先了半个身位。OWL 的架构更先进,代码更优雅,甚至在调试器(BIDS)和可视化工具(如 AppExpert)上都做得更精致。但微软利用操作系统的垄断地位,把 MFC 强行塞进了每一个开发者的手里。Visual C++ 与 MFC 捆绑销售,且文档铺天盖地。大学教材、培训班、技术书籍,都在教 MFC。不仅如此,微软还利用该优势搞垮了网景浏览器,不过后面也因此为这场“世纪审判”支付了不小的罚单。
当生态成为武器,技术再好,也挡不住那辆滚滚而来的战车。许多程序员虽然心里喜欢 OWL 的优雅,但为了就业和项目兼容性,不得不转向 MFC,推就着饮下荡妇的花酒;而 Borland 输掉了生态,也输掉了未来。
上世纪未本世纪初微软的野心:
1. Windows 强制捆绑预装 IE 浏览器,不单独收费。
2. 对戴尔、惠普等 PC 厂商下死命令:敢预装网景,就断供 Windows。
3. 内部邮件直言:掐死网景、粉碎 Java(Java 跨平台会颠覆 Windows)。
Symantec 与 Watcom 的绝地反击
Symantec C++:增量编译的神技
在 Borland 和微软打得不可开交时,还有两个“刺客”在暗处磨刀。首先是 Symantec C++。它的杀手锏是“增量编译(Incremental Compile)”。
在大型项目开发中,修改一行代码后重新编译整个项目,可能需要几十分钟甚至几小时。Symantec C++ 引入了一种聪明的机制:它会记录每个文件的依赖关系。当你只修改了一个文件,它能只重新编译那一个文件,并快速链接生成可执行文件。
这种技术在当时简直是救命的神技。它极大地缩短了开发周期,让程序员能够更快地迭代代码;虽然 Symantec C 的整体性能和稳定性不如 Borland C,但凭借“增量编译”这一绝活,它在大型项目开发领域占据了一席之地。
Watcom C/C++:性能怪兽的崛起
而来自加拿大的 Watcom C/C++,则是一个纯粹的“性能怪兽”。其设计理念是:生成的代码必须最快。它的优化器极其强大,能够生成比 Microsoft C 和 Borland C++ 更高效的目标代码。它的成功离不开一个传奇的合作者:ID Software。
1993 年,John Carmack 在开发《毁灭战士(Doom)》时,面临着巨大的性能压力。他需要在有限的硬件资源下,实现流畅的 3D 渲染。经过多次测试,Carmack 发现 Watcom C++ 生成的代码效率最高,能够让《毁灭战士》在当时的 386/486 机器上跑出惊人的帧率。于是,ID Software 公开宣称:“如果没有 Watcom,就没有《毁灭战士》。”
这一宣言,让 Watcom C 一夜成名。Watcom 甚至敢在广告里直接指着微软的鼻子骂,说 Visual C 慢得像蜗牛。这种挑衅式的营销,让它在硬核程序员群体中赢得了极高的声誉。
开放源码的悲剧
Watcom 的故事还有一个悲壮的结尾。1998 年,Watcom 公司将编译器开源,成立了 Open Watcom 项目。这本是一件好事,但由于缺乏商业支持和社区维护而逐渐边缘化。
如今虽然 Open Watcom 仍在更新,但它已经不再是主流选择。那个曾经挑战微软霸权的“性能怪兽”,最终也成为了历史的注脚。
蓝底白字的落幕
Windows 95 的分水岭
1995 年,Win95 的发布成为了编译器大战的分水岭。它带来了全新的 32 位保护模式,DOS 时代彻底结束。Visual C 4.0 紧随其后,提供了对 Win32 API 的完美支持。而 Borland 的 C 产品线,由于战略摇摆不定(在 OWL 和 VCL 之间犹豫),逐渐失去了竞争力。
Borland 的转型与衰落
面对微软的压力,Borland 开始转型。它推出了 Delphi,一款基于 Pascal 语言的快速应用开发(RAD)工具。Delphi 取得了巨大的成功,甚至在某些领域超过了 Visual Basic。但在 C 领域,Borland 推出了 C Builder,试图结合 Delphi 的 RAD 特性和 C 的强大功能。虽然 C Builder 在技术上依然优秀,但它已经无法撼动 Visual C++ 的统治地位。
Anders 的离去与新生
1996 年,Anders Hejlsberg 离开了 Borland,加入了微软。他在微软主导开发了 Visual J++,后来又创造了 C# 和 .NET Framework。
Anders 的离去,象征着 Borland 技术灵魂的缺失。虽然 Borland 后来依然推出了优秀的产品(如 Kylix, Delphi for .NET),但那个“百花齐放、百家争鸣”的编译器黄金时代,终究是过去了。
反思——我们怀念的是什么?
技术理想的破灭
回顾这段历史不禁要问:为什么技术更优秀的 OWL 输给了 MFC,为什么性能更强的 Watcom 没能成为主流?
答案或许在于:软件工程不仅仅是技术,更是生态、是商业、是人性。
Borland 的失败不是因为技术不行,而是因为它们在生态建设、市场推广、战略规划上输给了微软。微软利用操作系统的垄断地位,构建了一个庞大的开发者生态,让竞争对手难以逾越。
那个年代的热血与浪漫
但尽管如此,我们依然怀念那个年代。
怀念那个为了省下 1KB 内存而绞尽脑汁的热血岁月;
怀念那个在蓝底白字界面下,代码如流水般编译通过的快感;
怀念那个“程序员即英雄”的年代,每个人都相信,只要代码写得好,就能改变世界。
结语:江湖已远,传说永存
如今当人们在使用 VS Code、JetBrains IntelliJ IDEA 或者 Visual Studio Code 时,或许很难想象当年那些工程师为了几 KB 内存优化而通宵达旦的场景。
但正如李维在《Borland 传奇》中所写:“我们怀念的不仅是那些工具更是那个为了几 KB 内存优化而通宵达旦、为了一个算法争论不休的热血年代。”
江湖已远,但传说永存。
本节深度参考《李维:Borland 传奇》,并结合了 90 年代软件开发的历史背景,试图还原那个属于程序员的浪漫与悲壮年代,致敬李维;而本站对mickeylan引用文章的向他致敬。