Anzeige:
Ergebnis 1 bis 6 von 6

Thema: QT vs GTK

  1. #1
    Registrierter Benutzer Avatar von basti1985
    Registriert seit
    05.06.2007
    Beiträge
    30

    QT vs GTK

    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

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    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.

    Zitat Zitat von basti1985 Beitrag anzeigen
    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,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer Avatar von basti1985
    Registriert seit
    05.06.2007
    Beiträge
    30
    naja aber es ist doch so das java bytecode erzeugt und der muss ja dann zur laufzeit erst umgesetzt werden, was wiederum zeit kostet

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von basti1985 Beitrag anzeigen
    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ä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    Registrierter Benutzer
    Registriert seit
    20.04.2001
    Beiträge
    159
    Zitat Zitat von peschmae Beitrag anzeigen
    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.

    "I could have made some money developing proprietary software, and perhaps amused myself writing code. But I knew that at the end of my career, I would look back on years of building walls to divide people, and feel I had spent my life making the world a worse place."
    -- Richard M. Stallman

    Wissenskommunismus und Wissenskapitalismus
    Offene Quellen und öffentliches Wissen
    und vieles mehr: VRG's Texts , Philosophy of the GNU Project

  6. #6
    Registrierter Benutzer
    Registriert seit
    17.09.2001
    Beiträge
    1.182
    -> 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
    Geändert von Lin728 (21-08-2017 um 16:10 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •