Delphi与C ++ Builder的比较 - 对于执行Win32的Java程序员来说哪个更好

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (55)

我是一位经验丰富的Java程序员,在过去的几年里,他一直在做相当多的Win32工作。主要是我一直在使用VB6,但我真的需要移动到更好的东西。

我花了一个月左右时间玩Delphi 2009。我喜欢VCL GUI的东西,Delphi似乎比VB6更适合Windows API调用,我非常喜欢OO比VB6更好的事实,我喜欢这个单元IDE附带的测试框架。

但我真的很困惑,因为没有广泛使用的用于Delphi的垃圾回收器 - 必须手动释放每个对象或使用接口来处理所有对象,这似乎对您可以以面向对象的方式高效地执行操作的方式产生相当大的影响。此外,我对语法不太感兴趣,或者您必须在方法的顶部声明所有变量。

我可以处理Delphi,但是我想知道C ++ Builder 2009对我来说可能是更好的选择。我对C ++ Builder和C ++知之甚少,但对Delphi也知之甚少。我知道C ++语言有很多,但我怀疑只需要知道它的一个子集就可以高效地完成任务......我听说今天的C ++比C ++编程更有效率10年前。

我将仅仅进行新的开发,所以我不需要掌握C ++语言的每个方面 - 如果我能够找到每个Java语言特性的等价物,我都会很开心,随着我的进步,我可以开始寻找在更先进的东西多一点。(对不起,如果这听起来很痛苦天真 - 如果是这样,请让我直立!)

因此,对于Delphi和C ++ Builder都是新手的Java程序员来说,您认为这是对Win32 exes和dll进行高效开发的更好选择,为什么?你认为每个人的优点和缺点是什么?

提问于
用户回答回答于

Delphi或C ++ Builder - 这是一个艰难的选择!

如您所知,从IDE和RAD的角度来看,它们基本上非常相似。

每个人的利弊 - 无论背景如何 - 都有点像这样。两者共享一个很好的双向RAD表单设计器和框架(VCL),非常适合本地Windows开发。

德尔福:

  • 对于:大型,积极,热情的社区
  • 对于:德尔福2009年是多年来最好的版本
  • 对于:Delphi“单元”使C源/头文件对显得过时
  • 反对:没有自动销毁作为对象离开范围,因此很多“终于在你的代码
  • 反对:语言可能是'罗嗦'的,这是一个品味问题
  • 反对:使用其他语言(特别是C)中的第三方DLL或库需要编写Delphi头文件

C ++ Builder中

  • 对于:C ++ Builder 2009可能是有史以来最好的版本
  • FOR:RAII成语极大地简化了内存管理
  • 对于:模板非常有用且功能强大,即使C ++ Builder实现有一些错误。
  • 对于:支持BOOST和其他现代基于模板的库(即使Boost支持不是100%)
  • 对于与德尔福的良好互动意味着大多数德尔福组件可以很容易地使用。
  • FOR:易于与具有C / C ++头文件的第三方DLL /库一起使用。
  • 对于C ++而言,CV可能比Delphi更好看。
  • 反对意见:CB2009是“仅unicode” - 这对代码可移植性的影响与Delphi相比是不同的,没有经过深思熟虑
  • 反对:C ++ Builder用户基础比Delphi小得多。也许20%或更少。
  • 反对:Borland / Inprise几年前几乎杀死了BCB,并且在经过社区的重大努力后才复活。(然而,Codegear / Embarcadero的承诺似乎令人印象深刻)
  • 反对:C ++ Builder并不是Codegear中的顶尖产品。
  • 反对:第三方组件供应商并不总是理解/支持C ++ Builder

就是这样。为了陈述我的立场,我是一个快乐的BCB2007 / 2009用户(自B​​CB5以来),而且我也很少使用Delphi。几年前,我考虑从C ++切换到Delphi,但缺乏RAII习惯用语是我发现难以接受的一件事。

用户回答回答于

使用Delphi,您可以使用Barry Kelly编写的Boehm Garbage Collector API,这样您就可以在Delphi中进行垃圾收集。Barry在为CodeGear担任编译器架构师之前撰写了这篇文章。它在真正的大型应用程序中有问题,并且很可能不适用于64位Delphi。他在这个播客采访中谈了很多

即使你不使用那个垃圾收集内存管理器,我仍然会推荐Delphi通过C ++。C ++为您的常规开发提供的唯一优势是大括号语法。如果你不介意Delphi的语法,那么对于大多数事情你会发现它更好。授予C ++ Builder有整个Delphi VCL和RTL,所以它不如Visual C ++差,但我仍然认为Delphi是更好的选择。

对于Excel加载项(就像你在评论中提到的那样),我会推荐使用Delphi over C ++ builder,因为它具有更好的COM支持(我相信你需要使用Excel加载项)。

扫码关注云+社区