Java vs C++ Qt : what choice for a gentle deployment?

I need a bit of wisdom from the stackoverflow.

I'm going to developp a GUI application which will process xml data via forms. I have selected two options : Java (swing or swt) or Qt.

I've already try a basic tutorial with both Qt (Qt designer) and Java (Eclipse). And I must admit that both will fill my needs.

The last question I have to solve is how painful will be the deployment ?

The end user is a non-tech, so the installation and update process have to be easy.

Java has the Java Web Start, with easy updating; Qt may be more "packaged" without the JVM need.

What do you think ? What are the pros and cons ?

Thanks a lot


I have done development with both technologies, and I must say that Qt is the better choice in my opinion. All of my experiences with QT have been enjoyable, I can not say the same thing about when using swing. As far as deployment is concerned, Java will probably be a little easier, but thats not to say that it will be hard with QT. You will probably need to do some recompiling and possibly porting.

Swing is a fine framework. Not my first choice, but it does get the job done. What I like about QT is that you get access to a bunch of libraries that makes development quicker and easier. If you go with QT then "Drink the QT Kool-aid" or else it will make development tougher. This means where ever possible, use the Q version over the c++ version because the framework inherently "understands" other parts of the framework eg QString, QVector, QObject.

What it really comes down to is how comfortable you are with each of the languages. If you like c++ go with QT, otherwise use swing.


Pro-java : vibrant environment, lots of libraries available.
I remember a quote along the lines of

If it can be done on a computer its been done twice with java

Con-Java : java gui's have never really impressed me on the desktop.

Pro-Qt : Application startup time, is bound to be faster than the JVM

Con-Qt : C++ syntax, eg header files



Edit for the benefit of @ctd
I assume, from the punctuated comment below that you understand the meaning of "vibrant" but are disputing the relevance of its usage within this context.
If this assumption is incorrect then I encourage you to embrace a linguistic journey, and highly recommend participation at https://english.stackexchange.com/.

If not, then here are some stat's gathered within the hour:

    project_tags_on_freshmeat.net   question_tags_on_stackoverflow.com
c                           9,747                               36,492
java                        6,017                              141,062
c++                         5,487                               79,104
php                         4,936                              129,235
python                      3,830                               66,318
javascript                  1,464                              113,521
ruby                          577                               26,877
c#                            392                              196,863

Conclusion, from my perspective java is still looking pretty ... "vibrant"?!?!?!


Are you need crossplatform deployment? If so Java may looks more convenient because you can run the same bytecode on various platforms. In case Qt you will need to recompile and maybe little porting it.

链接地址: http://www.djcxy.com/p/19902.html

上一篇: String文字的垃圾回收

下一篇: Java与C ++ Qt:轻松部署的选择是什么?