Embarcadero C++ Builder是IDE的不错选择吗?

use*_*635 11 c++ c++builder

因为我们(我和我合作的人)在使用C++项目时越来越沮丧VS2010 sp1中的250 000+ LOC(这个IDE的速度简直令人难以置信),在我的公司,我们谈论的是将代码迁移到某些不同的IDE.我们做了一些研究,一个强有力的候选人似乎是Embarcadero C++ builder 2011 XE.有什么想法吗?这有什么好处吗?它与VS2010终极相比如何?

Eri*_*ric 36

我从1.0开始就一直在使用C++ Builder而且我很讨厌它.你会想到,这些年来,现在已经解决了简单的小麻烦,但事实并非如此.以下是我使用C++ Builder IDE时遇到的问题列表.

  1. 您的布局或个性永远不会得到维护.你创建一个,保存它,它只适用于某些事情.例如,调试器窗口不会保持其位置,也不会保留消息窗口.如果您分离项目资源管理器,它有时会消失.大多数时候重新加载你的个性并不能解决这个问题.您被困在将窗户拖回原位.

  2. 挖掘者有时会工作,有时也不起作用.在调试版本中,如果设置断点并开始单步执行代码,则可以将鼠标悬停在变量上进行检查.有时它可以工作,有时它不能在完全相同的变量上工作.疯!

  3. Eclipse会查找代码错误,例如,如果您忘记在语句末尾放置一个分号,它会稍微放一点吗?保证金.C++ Builder不会做这样的事情.它会给你一个神秘的编译时错误信息.

  4. 最新版本的C++ Builder使用类似于VS的makefile; 这是一个XML混乱.Eclipse与CMake和Makefiles一起使用.我已经阅读过CMake维护者正在寻找C++ Builder生成器的地方,但最后我检查过它不存在.我进行嵌入式和交叉编译,因此有时我的C++ Builder代码被复制到我的嵌入式开发环境或与之共享,我最终会维护两个构建环境.

  5. 不是IDE,但C++ Builder没有利用多个CPU来编译代码.但是,有一个第三方工具,你可以花更多的钱来获得这个.它叫做TwineCompile(http://www.jomitech.com/twine.php).使用Eclipse,他们会调用您正在使用的任何编译器(gcc等等)和那些编译器并生成支持-j选项.

  6. C++ Builder附带了一个有限版本的AQTime,它是一个动态代码分析器.花更多钱,你会得到更高级的版本.Eclipse支持许多动态和静态代码分析(也花费了$$),但至少插件就在那里.我们使用Klockworx.

  7. 对于像GIT这样的外部源代码控制,我不知道C++ Builder没有支持.Eclipse确实如此.我认为C++ Builder内置了subversion.如果它支持GIT,我永远无法让它工作.当我给它一个git路径时,它告诉我它不理解URL方案.

  8. 我写的某些模板代码会导致编译器发生段错误,必须完全重启IDE.这对我来说很难过.你有一个10年以上的编译器,它仍然是segfaulting.我有一段C++模板代码,当我把它带到运行完全相同版本的C++ Builder的工作计算机时,它编译好了,但在我的家用机器上它是段错误的.我绝对相信没有像病毒一样的不利因素......

  9. 在编译可能需要很长时间的大型项目时,您无法使用IDE浏览代码.有时您可能会看到编译器警告滚动,您必须等待编译作业完成以检查提到的行或使用其他方法打开文件.

  10. C++ Builder IDE具有项目组的概念,其子项目更多/更少自包含.项目组没有像子项目那样的项目组包含/链接路径的概念.子项目有一个基本的,调试的,释放的路径,其中调试和发布可以从基础继承或阻止,但是在项目组级别没有这个.IDE具有可以继承的全局设置,但它适用于您在IDE中执行的所有操作.因此,无法修改给定项目组,只修改一组子项目的包含/链接器路径.我只是觉得他们本可以做得更好.

  11. C++ Builder的Build输出没有颜色编码,例如,显示红色错误和其他颜色的警告.一切都是黑白的.VC和Eclipse颜色代码,并提供更改各种警告和错误颜色的选项.C++ Builder中的输出选项卡是相同的.在大型项目中,很难用其他噪声来研究编译器警告.在C++ Builder的IDE中,您可以选择警告级别,但这只影响"输出"选项卡中的输出,您仍然会得到其他愚蠢的噪音,比如让我知道它删除链接器状态文件"CleanLinkerStateFiles".

除非您正在进行Windows桌面GUI开发,否则请远离Embarcadero/C++ Builder.我开始在Borland时代使用C++ Builder版本1,并且有一些大型项目在VCL上投入了大量资金,所以我坚持使用它来完成这些项目,但我所有的新项目,我一直在使用Eclipse.

关于C++ Builder的积极评论,VCL非常好.它不是多线程的,但它非常适合快速创建桌面GUI应用程序.我认为在CBuilder中获取基于C++的GUI应用程序比在VS中更快.而且CBuilder似乎有大量免费和付费的GUI组件; 再次以C++为重点.我知道C#+ VS有很多GUI控件.

更新: 我今天遇到的问题与本论坛中提到的问题相同:http: //qc.embarcadero.com/wc/qcmain.aspx?d = 57631

__PRE__

下定决心.这是警告还是神坝错误?

一直滚动到最后,您会发现个人修改ILINK32.EXE以使其再次运行.截至今天早上,我们的版本停止工作.当我们争相理解并知道该如何处理时,我们已经死在水中.

这是您想要依赖的编译器/ IDE吗?再次,这个产品已经存在了十多年,它仍然有这样的问题.我发现这完全不可接受.来自公司的垃圾产品,不会产生麻烦.

  • 只是不得不赞成埃里克所说的.此编译器无法处理某些字段中的领先开源库,如Boost,VTK,OpenCV,TBB等.VTK过去常常有一堆特定于Borland的解决方法,但是在最近的版本中它们已经破解了.并不是VTK使用专有的VC++东西,只是在最近的版本中32位编译器糟透了. (3认同)
  • 选择一个随机的第三方开放源代码跨平台C ++库。它可能不会在C ++ Builder中编译。对该库支持该编译器的公司/组织表示极大的怀疑-大多数仅支持Windows上的VC ++以及gcc(MinGW)之类的东西。您是否想一直重新发明轮子,还是要使用第三方库? (2认同)
  • 他们永远落后于时代。考虑到 VCL 库直到 2009 年才广泛支持 Unicode,而微软在 90 年代就这样做了。微软在 2005 年支持 64 位 C++;直到几年前,Embarcadero 才推出了他们的 64 位编译器。它们仍然不支持有用的 C++11 功能,例如 32 位 C++ Builder 中的 lambda。他们说 32 位 clang 编译器在路线图上。什么时候?在他们运营的时间线中,我怀疑这十年会发生这种情况,届时 32 位 Windows 将死亡。 (2认同)
  • 这篇文章如此彻底地反映了我对XE7的感受.我也讨厌它 (2认同)
  • 请注意,此答案中的某些内容(例如,1,未维护布局;5,不进行并行编译;9,以这种方式编译)不正确。当然,#1 从来都不是真的;很难理解使用过该产品的人怎么会写出这样的内容。(当您更改布局时,请使用布局预设组合框旁边的“保存布局”按钮保存它。如果您希望它成为新的默认值,请覆盖默认值。或者#9,打开后台编译并继续使用 IDE它构建)就错误而言 - 好的。但不断改进:) (2认同)

unk*_*ulu 14

实际上不是答案,但我会把它留在这里:

  1. 它花钱(是的,VS也是,但你已经拥有它,不是吗?)
  2. 将一个足够大的项目迁移到新的IDE(和编译器)并不是太容易,更不用说与你合作的人和他们的习惯(我可能会放弃).
  3. 还有一个新的编译器,它的品牌错误和注意事项需要了解.它的使用范围远不如VC++.但是,它基于Clang,它应该比VC++更好地支持标准,并且更容易将现有的C++代码移植到.
  4. 迁移的难度很大程度上取决于项目的性质(基于GUI,它依赖于MS VC++作为编译器有多深?)

  • VC++构建很慢,因为它是一个优化编译器.C++ Builder构建可能"更快",但这是因为32位编译器不能很好地优化.对于我们使用的一个计算密集型开源项目,我们在VS2008和C++ Builder XE2下编译.我们发现在VS2008下代码运行速度快了大约3倍!您可以具有慢构建和快速运行时性能,或快速构建和慢运行时性能.选一个! (3认同)
  • 请注意,C++ Builder有一个基于Clang的Win32编译器,它提供了相当不错的优化.上面的评论基于旧的"经典"编译器,现在已经过时了. (3认同)

Max*_*meG 13

Embarcadero XE没有任何积极意义,既没有老化的IDE,也没有老化的编译器.只有在你被绑定的情况下(遗留软件)或者你想要使用Delphi时才使用它.

对于C++来说,帮自己一个忙,加入21世纪:坚持使用VC++或Qt等更强大,多功能和现代化的东西.

  • “老化编译器”仍然基于旧的Borland技术,但它只适用于32位开发。64 位编译器和移动(iOS 和 Android)编译器基于 CLang,因此它们很现代,支持 C++11 等。32 位编译器最终也将迁移到 CLang。 (2认同)
  • @RemyLebeau:32 位编译器什么时候会迁移到 clang?它会在我死之前发生吗?他们会完全放弃它吗?他们太忙于追逐移动设备和其他由营销引导的新东西,而无暇修复他们已经拥有的东西。Windows 在 90 年代就支持 UCS-2/Unicode。Embarcadero 直到 2009 年才支持 Unicode,而 VS 至少在十年前就开始支持 Unicode。64 位 VC++ 于 2005 年广泛使用;Embarcadero 又花了几年时间,直到几年前......(那是什么,XE2 或 XE3 还是什么?)我认为 32 位 clang 在这十年内不会出现 (2认同)
  • 以防万一有人错过了,Embarcadero 最终在 RAD Studio 10 西雅图发布了他们新的 [32 位基于 Clang 的 C++ 编译器](http://docwiki.embarcadero.com/RADStudio/en/BCC32C),以及旧的 [32 -bit 基于 Borland 的 C++ 编译器](http://docwiki.embarcadero.com/RADStudio/Seattle/en/BCC32)。用户可以根据每个项目在两个编译器之间切换,[C++ 编译器项目选项](http://docwiki.embarcadero.com/) 中有一个新的“**使用‘经典’Borland 编译器**”设置RADStudio/en/C%2B%2B_Compiler#Classic_Compiler)(默认为 True)。 (2认同)

vir*_*raj 6

我建议Eclipse.

  • 作为一个IDE,它也需要一点时间才能被使用,但这是非常值得的.
  • 它适用于Mac OS,Linux和Windows.
  • 您需要在计算机上安装Java,但这确实不是问题.
  • 它支持Cygwin,MinGW和MicrosoftVisual C++工具链.CDT Builder中的构建也非常好.
  • 您可以使用它来开发C++以外的语言(Java,JavaScript,PHP ..)
  • 您可以通过安装插件来扩展它的功能
  • 免费!

  • 我是否提到它有一个内置的Web浏览器?编码时参考在线文档非常有用.


Rem*_*eau 6

这个问题实际上是个人意见问题.

我个人非常热爱Visual Studio,我就像瘟疫一样避免它.我对Eclipse的接触仅限于Java,但即便如此,我也很难使用它.

我已经使用C++ Builder 15年了,从v3.0一直到最新的XE6.是的,它有怪癖和局限性,但是一旦你知道如何使用(或围绕)它们,我仍然觉得它对我来说是最容易使用的IDE并且很有效率.也许我对它的体验阻碍了我与其他IDE合作的能力,但也就是这样.我仍然更喜欢C++ Builder.但是我只将它用于Windows开发(VCL非常成熟和强大),我还没有用它进行跨平台开发(FireMonkey仍有一些方法可以进化和成熟).我确实使用了大量的开源项目.是的,有时我必须调整他们的项目和/或代码以使它们编译,但它通常是一次性交易然后它们工作正常.


Vya*_*ets 5

1.我们有超过1M LOC的解决方案,VS2010可以处理它.我们特别喜欢/ MP开关,用于编译所有可用的CPU内核.

您没有指定您的硬件.如果你还没有运行至少i7-2600 +快速SSD,我建议先尝试硬件升级.

过去我曾经经常使用Borland工具.德尔福相当稳定; C++ Builder更加错误.几年前,我帮助将旧的Delphi项目升级到更新的Delphi IDE,并安装了一些Service Pack.它甚至在Turbo Pascal之后的基本文件IO API中也存在错误.我们不得不降级到以前的版本.我希望C++ Builder的质量不会比VS2010好.

你没有说明究竟什么是慢的.您可能希望将一些项目转换为单独编译的组件.还要确保使用PCH.

如果你滥用C++包含模型,通过在每个单元中包含许多不需要的头文件,也值得研究.如果在预处理之后,Intellisense和编译器必须处理大量代码,那么IDE无法提供帮助.