PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : QT vs GTK



basti1985
01-10-2007, 15:11
hallo,
da ich mich nun an die GUI programmierung wagen möchte die zum einen platformunabhänig sein soll und zum anderen noch möglichst schnell würde ich gern wissen was vor und nachteile von QT (4) und GTK2 sind bzw in was diese sich unterscheiden. (ich gehe von der QT Open Source Variante aus)

danke

p.s. oder vielleicht gibt es ja noch etwas anderes in der richtung
-> Java fällt wegen bytecode => relativ langsam, nicht unter betracht

anda_skoa
01-10-2007, 16:02
Das kann man schnell nicht beantworten.

Im Grunde musst du beides ausprobieren und dann entscheiden, welche mit der API verbundene Arbeitsweise deiner Denkweise am nächsten kommt.



p.s. oder vielleicht gibt es ja noch etwas anderes in der richtung

Zum Beispiel wxWidgets



-> Java fällt wegen bytecode => relativ langsam, nicht unter betracht
Das hat sehr wenig bis gar nichts mit Bytecode zu tun.

Ciao,
_

basti1985
01-10-2007, 18:00
naja aber es ist doch so das java bytecode erzeugt und der muss ja dann zur laufzeit erst umgesetzt werden, was wiederum zeit kostet

peschmae
01-10-2007, 20:31
da ich mich nun an die GUI programmierung wagen möchte die zum einen platformunabhänig sein soll und zum anderen noch möglichst schnell würde ich gern wissen was vor und nachteile von QT (4) und GTK2 sind bzw in was diese sich unterscheiden. (ich gehe von der QT Open Source Variante aus)

Wenn dich die Qt-Lizenz nicht stört dann ist Qt eine sehr gute wahl. Sehr komplett und nett zu programmieren.

Mit Gtk bin ich selber nie sehr weit gekommen; obwohl ich eigentlich Gtk-Anwendungen vom Look & Feel her meist besser mag.

Aber hatten wir die Diskussion nicht schon mal? ;)



p.s. oder vielleicht gibt es ja noch etwas anderes in der richtung
-> Java fällt wegen bytecode => relativ langsam, nicht unter betracht

Die Diskussion hatten wir auch schon ;)

Wenn du suchst, siehst du dass ich genau dieselbe Ansicht vertreten habe - vor etwa fünf Jahren oder so. Wobei ich (hoffentlich) nicht den bytecode als solcher als Ursache dargestellt habe.

Heutzutage sieht das etwas anders aus (wie du siehst wenn du den letzten Thread in dems um das ging findest). Die Sun JVM ist viiiiel schneller als früher. Gerade auch was Swing anbelangt, was ja früher imo unzumutbar war.

Heute bleiben als Java-Nachteile imo nur noch:
- Systemfern d.h. wenn du Kleinviecher programmierst vielleicht eher unpassend (zeitgleich natürlich auch der grösste Vorteil)
- Viel Ram vergleichsweise u.A. durchs Memorymanagementkonzept (aber wenn du 2 GB hast vernachlässigbar; ausserdem: Die Programme in C/C++ schffens halt sonstwie das Ram zu füllen ;))
- lange Startzeiten (ist aber bei anderen Programmen auch nur dann besser wenn du den passenden Desktop gestartet hast (also KDE-PRogramme auf KDE, Gnome-Programme auf Gnome))

MfG Peschmä

cybercrow
03-10-2007, 01:29
Wenn dich die Qt-Lizenz nicht stört dann ist Qt eine sehr gute wahl. Sehr komplett und nett zu programmieren.


Ich gehe mal davon aus, dass er Freie Software schreiben will, also sollte die Lizenz kein Problem sein. ;)



Heute bleiben als Java-Nachteile imo nur noch:
- Systemfern d.h. wenn du Kleinviecher programmierst vielleicht eher unpassend (zeitgleich natürlich auch der grösste Vorteil)
- Viel Ram vergleichsweise u.A. durchs Memorymanagementkonzept (aber wenn du 2 GB hast vernachlässigbar; ausserdem: Die Programme in C/C++ schffens halt sonstwie das Ram zu füllen ;))
- lange Startzeiten (ist aber bei anderen Programmen auch nur dann besser wenn du den passenden Desktop gestartet hast (also KDE-PRogramme auf KDE, Gnome-Programme auf Gnome))


Ich würde noch hinzfügen:
1. Noch nicht vollständig verfügbar in einem freien System (wobei sich das ja bald ändern wird)
2. Kein wirklicher native-look-and-feel in GNOME, KDE,... und es fehlen einem viele Features aus den Desktops (kioslaves, gvfs,...).

(2. kann umgangen werden indem man die Gtk oder Qt Bindings für Java verwendet, damit ist man dann aber wohl in der Java Community eher ein Aussenseiter und wird es schwer haben Hilfe zu bekommen)


@basti1985:

Ich würde noch sagen, es hängt auch davon ab welchen Desktop und welche Software du verwendest. Du kannst zwar auch unter KDE Gtk+ programmieren und unter GNOME oder XFCE Qt programmieren. Aber meistens will man ja doch, dass sich seine Programme in seine Umgebung gut einfügen und da passt halt Qt besser zu KDE und Gtk+ besser zu GNOME oder xfce. Außerdem will man sich dann vielleicht auch irgendwann mal den Code seiner Programme ansehen und vielleicht sogar mitmachen, das geht natürlich nur, wenn man das richtige Toolkit beherrscht.

Du solltest auch beachten, dass Qt C++ verwendet, wärend Gtk+ C verwendet.
C ist halt so eine Sache was GUIs angeht, ich bin damit nie richtig warm geworden.

Ein sehr schönes Zitat von einem RedHat Entwickler:


And of course, the number 1 tip for GTK+ programming is:

- Don't use C; In my opinion, C is a library programming language not an app programming language.


So sehe ich das auch. Das schöne ist, dass Gtk+ sehr viele Sprach-Bindings anbietet. Die wohl am meist genutzten sind Gtkmm(C++), Gtk#(C#) und PyGtk(Python).
Ich bevorzuge Gtkmm und ab und zu Gtk#. Falls du dich also für Gtk+ entscheiden solltest, kannst du ruhig erstmal in die C-API schauen, falls dir das aber nicht so zusagt, dann denke an die Bindings und schau dir mal die API für eine "modernere" Sprache an.

Lin728
11-10-2007, 19:16
-> Java fällt wegen bytecode => relativ langsam, nicht unter betracht


Java hat gewisse spezifischen performance-schwächen, aber es hat eigentlich kaum etwas mit bytecode zu tun.
Im übrigen gilt der Sun-Jit (welcher den bytecode in maschinencode übersetzt) als einer der besten JITs überhaupt.

Ich würde qt nehmen wenn dir die Lizenz nichts ausmacht, naja und sonst musst du hald mit GTK+ rummurksen.
Btw.: GTK ist langsam, und es ist in C programmiert ... da stimmt die bytecode analogie schon gar nicht ;)