> 文档中心 > 编译速度谁“最快”?25岁的 C++Builder 还能打

编译速度谁“最快”?25岁的 C++Builder 还能打

作者 | David Millington
编译 | 张洁
责编 | 屠敏

25 年前,C++ 世界发生了一件令人高兴的事情,那就是 C++Builder 的到来,C++Builder 是一个用在 Windows 平台上撰写 C++ 语言的集成开发环境,它实现了可视化的编程环境和 C++ 的完美结合,引领着程序员走向美好的未来。到如今的 2022 年,C++Builder 迎来了它的第 25 个生日。

在这里插入图片描述

图片来源于 embarcadero

C++Builder 的发展

在 C++ 兴起的时候,Borland 公司的研究人员发现了 Delphi 的成功,取决于它完善的 UI 库、属性、方法和事件模型。当时,C++ 没有很好的 UI 库,它只能使用像 MFC 这样的库,并且使用旧的模式,同时也没有强大的视觉设计器。除此之外,C++ 还使用着 Borland 的 OWL 语言,虽然技术扎实,但在方法上已经落后了。

之后 Borland 的研究人员意识到,只需在 C++ 上增加几个功能,C++ 就可以使用与 Delphi 相同的模型,甚至可以与 Delphi 代码实现无缝互用。后经过研究人员的不断探索,Borland 公司于 1997 年 2 月 26 日发布 C++Builder 1 ,并取得了非常大的成功,销量达 6 位数。随着时代的进步,为了顺应时代的发展,相关研究人员对 C++Builder 进行了改版升级,于 2002 年发布了 C++Builder 6 ,这个版本在功能、可用性和流行度方面被广泛称为经典版本,至今仍享有盛誉。

但后来在 2003 年, C++Builder X 的出现让 C++ 产生了一个重大变化。研究人员想要C++Builder 成为一个通用的 C++ IDE,并且拥有 Windows VCL UI 库、能够快速创建应用程序的语言扩展,以及向前迁移应用程序的能力。经过不断地研究,该产品未能满足这些条件。直到两年后 Borland 发布了 C++Builder 2006,才重回经典代码库。

因速度闻名的编译器

C++Builder 编译器是业界使用的“最佳”编译器,因比其他编译器更快而闻名。它速度快的一个原因是它的架构:编译器解析源代码的整个翻译单元、构建 AST(抽象语法树)、生成中间体是表示可能对其执行许多转换,并将其提供给本身可能进行一些转换的后端。

今天的 C++Builder 拥有现代化的 High DPI IDE,包括 DPI 感知表单设计、数千个 UI 控件、现代 C++ 支持和现代 C++ 库的易用性、基于 LSP 的代码完成、LLVM 优化和多个平台。与此同时,C++Builder 仍然提供同样出色的构建速度。它建立在 Borland 公司久经考验的编译技术基础之上,提供了高度安全可靠快速的编译优化方法,完全编译出原始机器码而非中间码,软件执行速度大大提高。

在编译和连接过程中,C++ Builder 自动忽略未被修改的原代码和没有使用的函数,从而大大提高了编译和链接速度。另外,C++ Builder 还提供了一个专业开发环境所必需的命令行工具,来帮助建立 C++ 程序或者准备编译和连接的程序进行更精细的控制。

强大的语言扩展和库

C++Builder 添加了小而强大的语言扩展,这样容易采用高效的编程模型。C++Builder 还开创了语言互操作的先河,通过它的类似产品 Delphi,人们可以使用两种语言编译成同一个二进制文件,并且共享同一个二进制接口。在 C++ 中,大多数语言采用翻译或包装的方法,而不是 ABI 兼容性的真正内置互操作性方法。

这就开启了 C++Builder 的一大势:利用更多的库,尤其是它所提供的核心库的力量。C++Builder 的开发者可以使用 Boost 、{ fmt }和其它 C++ 库。研究人员还可以使用 Delphi 一起构建的大量库,这包括核心用户界面库、被称为 VCL 的 Windows 本地 UI 库以及跨平台框架 FireMonkey。

应用范围广,速度快

从工程到科学研究、纺织品到绿色电力、博物馆到百货商店,使用 C++Builder 制作的日常实用应用程序数不胜数,甚至是部署在整个国家并被数百万人使用的工业级软件。现在越来越多的行业在使用 C++Builder 制作的软件,因为它的生产力和库可以帮助开发人员快速完成工作,并且做得很好。

随着时间的推移,它逐渐迁移了技术,例如现在使用 Clang,同时保留了多年的兼容性。研究表明,人们使用 C++Builder 构建应用程序的速度比使用其他 C++ 产品快五倍。总而言之,它是一个值得人们长期依赖的产品。

参考链接:1.https://blogs.embarcadero.com/celebrating-25-years-of-cbuilder/
2.https://25.cppbuilder.dev/?page_id=117