作者 | David Millington

编译 | 张洁     责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

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

—END—

《新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造

— 推荐阅读 —

☞Vue、GitHub 深陷漩涡,React、Node.js 站队乌克兰,开源“锅”从天上来
☞当开源奔向物流,阿里云 PolarDB-X 数据库与韵达携手的背后
☞苹果春季发布会前瞻:全新 iPhone SE 3 将揭晓,M2芯片来袭?

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

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

    作者 | David Millington 编译 | 张洁 责编 | 屠敏 25 年前,C++ 世界发生了一件令人高兴的事情,那就是 C++Builder 的到来,C++Builder 是一个用在 W ...

  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. [原创]SparkR针对mysql的数据读写操作实现
  2. Selenium 1.0的历史及工作原理
  3. R语言scale_colour_brewer()函数和scale_fill_brewer()函数调色板及填充ggplot2图像实战
  4. ARTS打卡计划第二周-Share-使用java注解对方法计时
  5. 15个初学者必看的基础SQL查询语句
  6. Markovdecisionprocesses_Discretestochasticdynamicprogramming下载
  7. Codeforces Gym 100286I iSharp 水题
  8. Android App列表之游标ListView(索引ListView)
  9. SVN_06导入项目文档
  10. webflux上传下载文件
  11. linux socket bind 内核详解,Socket与系统调用深度分析(示例代码)
  12. python 循环添加array_python常用的基本语句介绍
  13. TemplateSyntaxError: 'crispy_forms_tags' is not a registered tag library.报错的解决办法
  14. 如何控制Nginx并发连接数,Linux 内核优化
  15. php 支持泛型,PHP对Java样式类的泛型有答案吗?
  16. .NetCore对接各大财务软件凭证API——用友系列(1)
  17. 对Excel选择性粘贴中的跳过空单元选项容易造成的两种误解
  18. Linux程序包管理命令之rpm
  19. php方法帮助文档,Trace方法_帮助文档_Thinkphp手册
  20. Linux作业 使用make命令和分析makefile文件

热门文章

  1. 【Qt串口调试助手】1.0 - 400行代码撸一个Qt5串口调试助手框架
  2. c/c++教程 - 1.9 指针 空指针 野指针 const修饰指针 指针常量 常量指针 指针和数组 指针和函数
  3. Caused by: java.lang.IllegalArgumentException: Result Maps collection does not contain value for...
  4. flex 弹出的titleWindow 隐藏标题栏
  5. img标签的before,after伪类
  6. c++右值引用以及使用
  7. MVC5中Model层开发数据注解
  8. 基于ssh的多节点之间互信通信的实现
  9. javascript中级--运动二
  10. SQLite学习笔记(十二)虚拟机指令