我花了一个月左右的时间与Delphi 2009一起玩。我喜欢VCL GUI的东西,Delphi似乎比VB6更适合于Windows API调用,我真的很喜欢OO比VB6好多了,而且我喜欢这个单元IDE附带的测试框架。
但是我真的很困惑,因为没有广泛使用的Delphi垃圾回收器 – 必须手动释放每个对象,或者使用接口,一切似乎都会对面向对象的方式有效地处理事情有很大的影响。此外,我不是特别热衷于语法,或者您必须在方法的顶部声明所有变量的事实。
我可以处理Delphi,但我想知道C Builder 2009是否可能是一个更好的选择。我对C Builder和C很了解,但是我也非常了解Delphi。我知道C语言有很多,但我怀疑只需要知道一个子集,才能有效地完成任务…我听说今天的C比C的C更有效率10年前。
我只会做新的开发,所以我不需要掌握C语言的各个方面 – 如果我能找到与Java的各种语言功能相当的,我会很高兴,当我进步时,我可以开始看在更高级的东西多一点。 (对不起,如果这听起来很痛苦天真 – 如果是这样请让我直线!)
那么对于一个对Delphi和C Builder来说都是新手的Java程序员,你认为这是一个更好的选择Win32 exes和dll的生产开发,为什么?你认为是每个人的利弊?
解决方法
如你所知,它们基本上非常相似,从IDE和RAD的角度来看。
每个人的利弊 – 无论背景如何 – 有点像这样。两者共享一个伟大的2路RAD表单设计师和框架(VCL),是本地Windows开发的理想选择。
德尔福:
FOR:大,积极,热情的社区
> FOR:Delphi 2009是多年来最好的版本
> FOR:Delphi“单位”使C源/头文件对看起来很古老
> AGAINST:没有自动破坏,因为对象离开范围,因此很多’终于在你的代码
>反对:语言可以是“wordy”,这是一个味道的问题
>反对:使用第三方DLL或其他语言的库(特别是C)需要写入Delphi头文件
C Builder
> FOR:C Builder 2009可能是最好的版本
> FOR:RAII成语大大简化了内存管理
FOR:模板是非常有用和强大的,即使C Builder实现与他们有一些错误。
> FOR:支持BOOST和其他现代基于模板的库(即使Boost支持不是100%)
> FOR:与Delphi的很好的互操作意味着大多数Delphi组件可以轻松使用。
FOR:易于使用带有C/C++头文件的第三方DLL /库。
FOR:C可能比Delphi更好看CV。
>反对:CB2009是“unicode only” – 这对代码可移植性的影响是不同的,而不是很熟悉德尔福
> AGAINST:C Builder用户群比Delphi小得多。也许20%或更少。
>反对:Borland / Inprise几年前几乎死于BCB,只有经过社区的重大努力才复活。 (但是,Codegear / Embarcadero的承诺似乎令人印象深刻)
>反对:C Builder不是Codegear中的堆栈的顶部。
>反对:第三方组件供应商并不总是理解/支持C Builder
就是这样为了说明我的立场,我是BCB2007 / 2009用户(BCB5以来),我也很少使用Delphi。几年前,我考虑过从C到Delphi的切换,但是RAII成语的缺乏是我觉得很难达成的一件事情。