2011-07-19 43 views
21

我需要一點智慧從stackoverflow。Java與C++ Qt:輕鬆部署的選擇是什麼?

我打算開發一個GUI應用程序,它將通過表單處理xml數據。我選擇了兩個選項:Java(swing或swt)或Qt。

我已經嘗試了Qt(Qt設計器)和Java(Eclipse)的基本教程。我必須承認,兩者都能滿足我的需求。

我必須解決的最後一個問題是部署會有多痛苦?

最終用戶是非技術人員,所以安裝和更新過程必須簡單。

Java擁有Java Web Start,易於更新; Qt可能會更「打包」而不需要JVM。

您認爲如何?優缺點都有什麼 ?

非常感謝

+7

@Hovercraft,更合適的網站,這是http://programmers.stackexchange.com/。我認爲programmersexchange包含其他內容。 :) –

+0

@安迪:是的,你說得對! –

+0

我已經使用了它們兩種,在大多數情況下Java的性能要好於Qt,到2017年,Java是最好的選擇。而且Swing與Qt相比具有強大的用戶界面靈活性。 –

回答

0

您是否需要跨平臺部署?如果是這樣的話,Java可能會更方便,因爲您可以在各種平臺上運行相同的字節碼。在Qt的情況下,你將需要重新編譯,也許很少移植它。

+0

是的,我必須跨平臺開發,大約50/50用戶在Mac/Win之間。我曾想過用C#和Cocoa構建單獨的GUI,但我沒有配合。 – user777466

+1

正確編碼時,重新組合必須是兩種方式之一。 – jackyalcine

+1

Qt是在跨平臺部署 – Geremia

0

我試過兩種語言。在我看來,C++可能會更痛苦(比如指針,內存泄漏等)。 Java是更快開發的更好方式。使用Java開發跨平臺程序也很容易。

+7

很好的Qt框架已經推出了很多好的方面從Java到C++。例如提供內置垃圾收集的智能指針。 – crowne

+0

@crowne但在java中,垃圾收集內置於語言中。我最近經歷了一個Qt應用程序,因爲在無限循環中發生了幾次malloc調用,所以經常因爲內存泄漏而被linux內核殺死。 – JohnMerlino

+0

我寧願說java有內置到平臺中的垃圾收集,特別是JVM。即使你明確地調用了System.gc(),這只是提示JVM需要垃圾回收,但JVM仍然可以選擇是否執行垃圾回收。也可以用Java創建內存泄漏看到這兩個SO問題:http://stackoverflow.com/questions/6470651/creating-a-memory-leak-with-java http://stackoverflow.com/questions/4062512/a -simple-program-to-demonstration-memory-leak-in-java – crowne

10

Pro-java:充滿活力的環境,有很多可用的庫。
我記得沿着

線路報價如果它可以在計算機上完成了它被用java做兩次

CON-的Java:Java GUI中的從來沒有真正打動我的桌面上。

親Qt的:應用程序的啓動時間,也必然是比JVM

CON-Qt的更快:C++的語法,例如頭文件



編輯爲@ctd
我認爲好處,從下面的間斷評論你理解的「充滿活力」的含義但在這一範圍內爭論其使用的相關性。
如果這個假設不正確,我鼓勵你接受語言學的旅程,並強烈建議參與https://english.stackexchange.com/

如果沒有,那麼這裏有一些統計的一個小時內聚集:

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 

結論,從我的角度java仍然顯得很......「充滿活力」?!?!?!

+2

「充滿活力」?!?!?! – ctd

17

我已經用兩種技術完成了開發,而且我必須說Qt在我看來是更好的選擇。我所有使用QT的經歷都令人愉快,我不能在使用揮杆時說同樣的話。就部署而言,Java可能會稍微簡單一些,但這並不是說QT會很難。你可能需要做一些重新編譯和可能的移植。

鞦韆是一個很好的框架。不是我的第一選擇,但它確實完成了工作。我喜歡QT的是,你可以訪問一堆庫,使開發更快捷,更容易。如果你跟QT一起去「喝QT Kool-aid」,否則它會使開發變得更加困難。這意味着在可能的情況下,使用Q版本而不是C++版本,因爲該框架固有地「理解」框架的其他部分,例如QString,QVector,QObject。

它真正歸結爲是你是多麼舒服的每種語言。如果你喜歡C++去QT,那麼使用swing。