tags:

views:

2445

answers:

11

If you had a differential of either venturing into Delphi land or Qt land which would you choose? I know they are not totally comparable. I for one have Windows development experience with Builder C++ (almost Delphi) and MFC (almost Qt), with a bit more time working with Builder C++. Please take out the cross platform ability of Qt in your analysis.

I'm hoping for replies of people who have worked with both and how he or she would compare the framework, environment, etc.?

Thank you in advance for your replies.

A: 

I'd choose delphi. Only because I have more experience with it. I don't think that there is other reasonabl criterias.

cleg
A: 

I would pick Delphi, but that is probably because I have programmed it before. It seems there are still a number of companies which use it, and almost everyone who has 8+ years expierence has encountered it somewhere. It seems that most programmers can relate to using it or at least learning Pascal. Not to mention the fact that newer languages (C#) are based on it (at least partially).

Kevin
A: 

Qt is cross-platform, Delphi not much if we count Kylix. Lazarus is cross-platform, but not quite feature-complete yet.

+11  A: 

If you are talking UI frameworks, then you should be comparing Qt with the VCL, not the IDE (Delphi in this case). I know I'm being a stickler, but Delphi is the IDE, Object-Pascal is the language, and VCL is the graphical framework.

That being said, I don't think there is anything that even comes close to matching the power and simplicity of the VCL. Qt is great, but it is no VCL.

Mick
+2  A: 

I would pick Delphi. Of course you ask any pascalholic and he is sure to answer just the same. ;)

Qt again is fine, but the VCL just feels more polished. But then that could be my years of working with it so it just feels right. My experience with Qt was limited to a short lived project that ended up being rewritten in Delphi after it was determined that cross platform was not really needed thanks to the power of GoGlobal which can make any win32 app a web application, and therefore run on any platform.

skamradt
+14  A: 

I have used both and have ended up going the Qt route. These are the reasons:

  • Trolltech offer quick and one-to-one support via email
  • Qt innovates, and introduces powerful new features regularly
  • The Qt documentation is amazing, and in the rare cases where it isn't, you can read the source code
  • Having the source code for Qt also allows you to debug inside your base libraries, which has been a life saver for me on many an occasion
  • The API is very consistent and well designed. We have put new people on the project and within a month they show deep knowledge of the toolkit and can learn new classes very quickly
  • It has bindings to other languages, eg. Ruby and Python.

C++ is somewhat of a downside, eg. compile times, packaging, and a less integrated IDE. However Qt does make C++ feel more like a higher level language. QStrings take all the pain out of string handling for example. Thus the additional issues with C++ that you would normally face, eg. more buggy code, are less prevalent in my experience when using Qt.

Also, there are more libraries for Delphi than for Qt, but this is mitigated due to the fact you can just use a c or c++ library in a Qt project, and also because Qt is so fully featured you often don't have to look any further.

It would be a strange situation where I would choose Delphi over Qt for a new project.

Max Howell
With most SKUs of Delphi, you have the VCL source, too.
Ulrich Gerhardt
+6  A: 

It really depends on your needs and experience. I have worked with both (though have to say that the last Delphi version I really worked with was Delphi 6, and I'm currently working with Qt 4.4).

The language

C++ pros:

  • C++ is more "standard", e.g. you will find more code, libraries, examples etc., and you may freely use the STL and boost, while Object Pascal is more of an exotic language
  • Qt compiles on different platforms and compilers (Kylix is based on Qt, BTW)

Object Pascal pros:

  • some dynamic properties are build right into the language, no ugly workarounds like the MOC are needed
  • the compiler is highly optimized for the language and indeed very fast
  • the language is less complex than C++ and therefore less error prone

The IDE

Qt pros:

  • Strictly spoken, there is no IDE for Qt besides the Designer, but it integrates nicely into your preferred IDE (at least Visual Studio and Eclipse)
  • the designer does a better job with layouts than Delphi forms (Note: this is based on Delphi 6 experience and may not be true with current versions)

Delphi pros:

  • The IDE is really polished and easy to use now, and it beats Visual Studio clearly IMO (I have no experience with Eclipse)
  • there is no point 2... but if I had to assign the buzzword "integrated" I would assign it to the Delphi IDE

The framework

I will leave a comparison to others, as I don't know the newest VCL good enough. I have some remarks:

  • both frameworks cover most of the needed functionality
  • both have the source code available, which is a must IMO
  • both have a more or less consistent structure - I prefer Qt, but this depends on your preferences (remark: I would never say that Qt is almost MFC - I have used MFC for a long time, and both Qt and Delphi - and .NET, for that matter - are way better)
  • the VCL has more DB-oriented functionality, especially the connection with the visual components
  • Qt has more painting (2D / 3D / OpenGL) oriented functionality

Other reasons that speak for Qt IMO are the very good support and the licensing, but that depends on your needs. There are large communities for both frameworks,

Qt has a really nice IDE now, Qt Creator.
Skilldrick
+3  A: 

A big difference between Delphi and Qt is the Qt signal/slots system, which makes it really easy to create N-to-N relationship between objects and avoid tight coupling.

I don't think such a thing exists in Delphi (at least there was no such thing when I used to use it).

agateau
It isn't built-in but there is e.g. http://www.deltics.co.nz/blog/?tag=multicast-events and http://blogs.embarcadero.com/abauer/2008/08/15/38865.
Ulrich Gerhardt
+2  A: 

Pick Delphi if your concern are native Win32 speed, a first class RAD environment and executable size. Pick QT if you need a truly cross-platform framework coupled with a now-flexible licensing policy and don't mind slightly bloated code.

I ported an old Delphi program under QT/C++, and I must say that QT is the framework that comes closest to VCL in terms of ease of use and power (IMHO)

A: 

I heard people speaking about Qt. So 2 weeks ago I install it because I'm curious. I allready uninstall it (not because it is bad because I don't test it enough to judge it) but because I would probably never use it again (I don't like C++ syntax).

What application are made with Qt ?

There is not so many "components" in Qt : so where can I find components for Qt ?

Hugues Van Landeghem
+1  A: 

I just started experimenting with Qt/C++/Qt Creator and I must admit I was surprised that this "little cute bastard" was just below my nose for some many years and I pay attention to it just now.

It (the framework) looks neat, feature-complete (even was stuff that .NET lacks such as inbuld XQuery support).

Seems that most of the Qt applications written are dealing with 2D/3D/Games.

I believe the downsides are only: having to know C++ and the lack of DevExpress goodies like QuantumGrid.

I am seriously considering porting one of my simple applications (a picture viewer like ThumbsView).

And it REALLY runs from same codebase. FOR REAL!

Forget about Kylix, Mono, Lazarus, Free Pascal. This Qt thing beats them all in 10 times.

Qt Creator is far from IDE. But I hope in the future they will add a more powerfull debugger, code insight and refactoring (at least the "Rename" one) and more meaningful compiler errors.

I would seriously recommend to someone without experience in Pascal/C++ to take the Qt learning curve.

Gad D Lord