作者 | 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

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

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

    作者 | David Millington 编译 | 张洁     责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 25 年前,C++ 世界发生了一件令人高兴的事情,那就是 C++Bui ...

  2. python自学多久可以找到工作-25岁从零开始学习python还能找到工作吗?

    相信近期大家经常可以看到培训机构推出python相关的课程,随着人工智能技术逐渐进入大众的生活,这种编程语言以简单.应用广泛的优势,成为了进入人工智能领域的条件之一.对于精通python开发的人,在职 ...

  3. 自学python能找到工作吗-25岁从零开始学习python还能找到工作吗?

    相信近期大家经常可以看到培训机构推出python相关的课程,随着人工智能技术逐渐进入大众的生活,这种编程语言以简单.应用广泛的优势,成为了进入人工智能领域的条件之一.对于精通python开发的人,在职 ...

  4. 25岁实现财富自由,戴志康告诉你什么样的技术人适合创业

    戴志康,"25岁身价过亿""获得超级回报的天使投资人"是他留给众多职场人的印象,了解他的前半生经历,你会发现,顺利且高光的职业生涯无非如此.<新程序员&g ...

  5. 利用pre-compiled headers技术以加速编译速度(一)

    <初见pre-compiled headers技术> 过去我们撰写C/C++程序时,每个档案都必须利用编译器指令 #include 引入许多的系统标头文件才能够使程序顺利编译,接着经由连结 ...

  6. 软件测试需要会python吗_真实揭秘90后职业新选择:25岁刚入行软件测试,竟拿到这么多薪资……...

    原标题:真实揭秘90后职业新选择:25岁刚入行软件测试,竟拿到这么多薪资-- 我叫王大壮,万万没想到,毕业3年后我成为了一名有钱的软件测试员. 我的工作经历不算坎坷波折,高考后顺利的考上了上海某二本学 ...

  7. 90后职业新选择:25岁刚入行软件测试,也可以拿这么多薪资

    我叫王大壮,万万没想到,毕业3年后我成为了一名有钱的软件测试员. 我的工作经历不算坎坷波折,高考后顺利的考上了上海某二本学校,开始了我的环境工程生涯,毕业后的2年在一家环保公司做污水处理技术员,我热爱 ...

  8. 7个秘诀让你25岁后轻松护理眼部

    眼睛是心灵的窗户,如果在25岁之前,我们还可以对它置之不理,过了25岁后你就会发现眼部周围出现了各种小问题:细纹,黑眼圈,甚至眼袋!别担心,教你7个秘诀轻松护理眼部肌肤. 眼睛是心灵的窗口,如果在25 ...

  9. PHP 还有未来么,还是 25 岁就“寿终正寝”了?

    作者 | BEN JAMES 译者 | Arvin,责编 | 夕颜 出品 | CSDN(ID:CSDNnews) 1995年6月,拉斯穆斯·勒多夫(Rasmus Lerdorf)在Usenet小组中发 ...

最新文章

  1. MyBatis常见面试题汇总
  2. OBYC PRY PRV
  3. Android10.0 Binder通信原理(七)-Framework binder示例
  4. C++ leetcode 5. 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
  5. windows server 网络负载均衡配置
  6. 1、在Linux虚拟机上安装 docker
  7. 【论文解读】CIKM20-MiNet:阿里|跨域点击率预估混合兴趣模型
  8. 03-CoreData原理
  9. linux 命令案例学习——文件搜索
  10. 不同职业的面试着装技巧。
  11. lichee linux nfs,SPI Flash 系统编译
  12. 调用另外一个文件_从零开始学Python-Day52-文件读写
  13. 【工具使用系列】关于 MATLAB 神经网络故障诊断,你需要知道的事
  14. YARN调试过程中的常见问题
  15. java程序中oracle回滚,Oracle的DDL语句不能回滚(直接提交)
  16. linux锐捷代码_告诉你Ubuntu Linux锐捷安装方法及命令
  17. 操作系统:银行家算法的实现
  18. 四六级对计算机考研有影响吗,英语四六级对考研有多大影响
  19. so easy(并查集)
  20. 【VUE项目实战】40、添加商品分类功能(一)

热门文章

  1. vim粘贴乱码的原因
  2. 一位JAVA程序员的七夕情书——致未来的另一半
  3. 【100题】第十九题(斐波那楔数列)
  4. password textbox setup
  5. poj 3126 BFS
  6. 关于layui.laypage.render 刷新首页没有分页问题
  7. a,b值进行交换的方法
  8. for update在mysql中使用
  9. RHEL6/7 x86_64下cachefilesd占用cpu达到100%
  10. web前端页面优化——个人见解