首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Delphi与Java -对于执行Win32的C++程序员来说,哪种选择更好

Delphi与Java -对于执行Win32的C++程序员来说,哪种选择更好
EN

Stack Overflow用户
提问于 2008-10-07 20:51:12
回答 9查看 15K关注 0票数 16

我是一个非常有经验的Java程序员,在过去的几年里做了很多Win32方面的工作。主要我一直在使用VB6,但我真的需要换个更好的。

我已经花了一个月左右的时间使用Delphi 2009。我喜欢VCL的东西,Delphi似乎比VB6更适合Windows API调用,我真的喜欢它在面向对象方面比VB6好得多的事实,我喜欢集成开发环境附带的单元测试框架。

但我真的很难接受这样一个事实,即Delphi没有广泛使用的垃圾收集器-必须手动释放每个对象或使用接口来处理所有事情,这似乎对您以面向对象的方式有效地做事情的方式产生了相当大的影响。此外,我对语法也不是特别感兴趣,或者你必须在方法的顶部声明所有变量的事实。

我可以处理Delphi,但我想知道C++ Builder2009对我来说是不是一个更好的选择。我对和C++知之甚少,但我对C++也知之甚少。我知道C++语言有很多东西,但我怀疑只需要了解它的一个子集就可以高效地完成工作……我听说现在的C++比10年前的C++要高效得多。

我将只做新的开发,这样我就不需要掌握C++语言的每个方面--如果我能为每个Java语言特性找到对应的东西,我会很高兴,而且随着我的进步,我可以开始研究更高级的东西。(抱歉,如果这听起来太天真了-如果是这样,请纠正我!)

因此,对于一个对Delphi和Java都不熟悉的C++程序员来说,您认为哪一个是进行Win32 exes和dlls高效开发的更好选择?为什么?你认为每种方法的优缺点是什么?

EN

回答 9

Stack Overflow用户

发布于 2008-10-07 21:22:59

使用Delphi,你可以使用由Barry Kelly编写的Boehm Garbage Collector API,这样你就可以在Delphi中进行垃圾回收。Barry在去CodeGear做编译器架构师之前写了这篇文章。对于非常大的应用程序,它确实存在问题,并且很可能不适用于64位的Delphi。他在这篇podcast interview中谈到了很多。

即使您不使用垃圾收集内存管理器,我仍然建议您使用Delphi而不是C++。对于常规开发,C++为您提供的唯一优势是大括号语法。如果你不介意Delphi的语法,那么对于大多数事情你会发现它更好。虽然拥有完整的Delphi和RTL,所以它不像Visual C++那么糟糕,但我仍然认为C++会是一个更好的选择。

对于Excel ins(正如你在评论中提到的),我会推荐Delphi而不是C++ builder,因为它有更好的COM支持(我相信你需要为Excel ins提供COM支持)。

票数 10
EN

Stack Overflow用户

发布于 2008-10-07 21:12:16

Delphi会让你更容易接受,当然你必须管理你的内存,但它非常简单

代码语言:javascript
复制
MyObj = TMyObj.Create;

try
  MyObj.DoSomething;
finally
  MyObj.Free;
end

在Delphi中,你所有的对象都分配在堆上,所以规则很简单,如果你创建了它就释放了它。

C++和它的堆栈和基于堆的objs意味着你有更多的东西要学,也有更多的可能会遇到麻烦。

票数 8
EN

Stack Overflow用户

发布于 2008-10-14 19:56:32

从BCC4.1/DOS开始使用Borland C和C++编译器,从3.0到2007年使用Delphi,我可以坦率地告诉你,无论哪种方式,你都会经历一场伟大的冒险。从Borland的Builder和RAD IDE上的C/C++迁移到微软的VC++、C++和.NET (已经使用了第一个MS-DOS版本中的VC --米色的三环迷你活页夹)是一个实质性的范式转变(和学习曲线)。

在C++和Delphi之间做出选择是我建议你在接触了几个使用这两种语言的中小型项目后做出的选择。我从一个C程序员开始,大约五年后转向Delphi (V3.0),当时VCL使Windows编程变得更容易、更有效率。

请注意,对于来自其他语言如COBOL、FORTRAN、VisualBasic的程序员来说,Delphi是一种诱人的语言,因为它的语法和代码规则强制执行一种可以避免麻烦的规则。C语言的简洁性和原始的强大功能使其成为一种伟大的系统编程语言(设备驱动程序、操作系统代码、实时嵌入式编程),但在经验不足的人手中,它可能会咬你一口。

Borland的Delphi(Delphi添加到C++编译器中)去掉了许多C++的锐利边缘,是我第二喜欢的语言。由于Borland向这两种语言都添加了.NET支持,因此有一个强有力的论据认为应该使用构建器而不是VC++进行MS框架编程。尽管与C++相比,C#有很好的“友好性”,但如果我刚开始使用,我仍然会坚持使用Delphi或Builder。

对于学习诀窍,对于原型和快速概念程序,根本没有一种语言可以击败Delphi,特别是在VCL和第三方组件方面。没有炒作,只有事实。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/180358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档