staging.inyokaproject.org

Qt vs GTK: Ist die Qt-Portierungvielfalt GTKs Tod?

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Unix_Samurai

Anmeldungsdatum:
10. Oktober 2008

Beiträge: 661

Hi.

Qt setzt sehr stark auf die Portierung in andere Betriebssysteme. Nun kann man sogar Qt Software scheinbar ohne großen Aufwand auf Android portieren. Eine Liste der Portierungsmöglichkeiten sieht man unter http://www.wikivs.com/wiki/GTK_vs_Qt

Denkt ihr, dass ist der entscheidene Vorteil von Qt gegenüber GTK?

MfG

Hefeweiz3n Team-Icon

Moderator, Webteam
Avatar von Hefeweiz3n

Anmeldungsdatum:
15. Juli 2006

Beiträge: 5816

Nein. Sicher ist die Portierbarkeit von Qt ein großes Plus, eine Desktopanwendung kann aber nicht einfach so für andere Geräte portiert werden. Vllt. ist der Aufwand bei Qt kleiner weil bei strikter Trennung von Funktion und Darstellung nur letztere geändert werden muss, bei entsprechender Programmierweise (Standard C/C++ für Funktion und Gtk nur für Darstellung) das vermutlich auch zu handhaben wäre.

Der entscheidende Vorteil von Qt aus meiner Sicht ist das Programmierkonzept was dahintersteckt. Ich finde das Signale und Slots einfach viel einfacher zu handhaben sind als Callbacks. Auch wenn sie den Nachteil haben das sie erst zur Laufzeit gebunden werden. Mit den entsprechenden IDEs kann man aber auch da größere Fehler vermeiden.

Aber das ist mein subjektives Empfinden. Deshalb hier ein paar Qualitative Argumente:

Qt bringt bereits eine sehr umfangreiche Bibliothek mit die eigentlich kaum etwas zu wünschen übrig lässt und zudem wirklich hervorragend dokumentiert ist. Codebeispiele inklusive.

Für Unternehmen bietet Qt durch die LGPL und die kommerziellen Lizenzen zudem die Möglichkeit, Code zu erstellen, der nicht offen gelegt werden muss. Das allein wird GTK für viele Firmen die nicht auf Open Source setzen ausschließen.

Unix_Samurai

(Themenstarter)

Anmeldungsdatum:
10. Oktober 2008

Beiträge: 661

Gibt es eigentlich eine Formel um die Portierung von GTK und Qt auf ein anderes Framework in Personenstunden darzustellen?

Für Unternehmen bietet Qt durch die LGPL und die kommerziellen Lizenzen zudem die Möglichkeit, Code zu erstellen, der nicht offen gelegt werden muss. Das allein wird GTK für viele Firmen die nicht auf Open Source setzen ausschließen.

GTK hat auch die LGPL, wodurch ich keinen Nachteil erkenne. Es sei denn, die weiteren Lizenzen von Qt sind tatsächlich so vorteilhaft. Ist es so?

Hefeweiz3n Team-Icon

Moderator, Webteam
Avatar von Hefeweiz3n

Anmeldungsdatum:
15. Juli 2006

Beiträge: 5816

Nun, gerade für Windows-Programme bietet sich an die benötigten Bibliotheken statisch in das Programm zu linken. Auch bei Proprietären Linux-Programmen (z.B. Google Earth) wird dies gemacht (Dort z.B. mit Qt in aktuell glaube ich Version 4.6, die neueste Version, die auch die meisten Distributionen ausliefern ist ja 4.8). Hat den Vorteil das man weniger Abhängigkeiten hat und nicht für jede Version eine dynamisch gelinkte Version bereitstellen muss die bei einem Update u.U. auch neu erstellt werden muss. Ist bei der Vielzahl von Distributionen auch für ein Unternehmen wie Google nicht wirklich sinnvoll für jede halbwegs große Distri in allen unterstützten Versionen ein Repository zu betreiben.

Statisch Linken ist mit GTK aber definitiv nicht möglich, weil die LGPL genau das nämlich dann nicht mehr erlaubt. Dort ist nur dynamisches Linken möglich wenn man die Anwendung selbst nicht frei verfügbar machen will (Es sei denn ich verstehe die LGPL falsch, dann bitte korrigieren).

Auch wenn es bei mobilen Geräten hoffentlich darauf hinausläuft dynamisch gelinkte Bibliotheken zu nutzen vermute ich doch das es statisch gemacht werden wird. Weil nämlich meines Wissens nach der Google Play Store keine Abhängigkeiten kennt. Beides hat auch hier die gleichen Vor- und Nachteile wie auf dem Desktop: Wird nur ein kleiner Teil genutzt müssen auch nur diese einkompiliert werden und es wird somit Platz gespart. Nutzen immer mehr Anwendungen aber verschiedenste Teile kann sich die dynamische Version aber auch schnell lohnen.

Unix_Samurai

(Themenstarter)

Anmeldungsdatum:
10. Oktober 2008

Beiträge: 661

Ja, das mit dem statischen Verlinken klingt logisch. Nun ist mir klar, warum LGPL manchmal unattraktiv ist.

glasenisback

Avatar von glasenisback

Anmeldungsdatum:
20. November 2011

Beiträge: 1603

Dumm nur, dass die LGPL das statische Linken gegen proprietären Code erlaubt. Die Entwickler müssen nur sicherstellen, dass der Benutzer Zugriff auf die Quellen der LGPL-lizensierten Bibliothek hat.

Hefeweiz3n Team-Icon

Moderator, Webteam
Avatar von Hefeweiz3n

Anmeldungsdatum:
15. Juli 2006

Beiträge: 5816

Danke für die Richtigstellung.

Bleibt als objektiver Vorteil noch die umfangreiche Qt4-Bibliothek, wovon normalerweise neben Core auch die Standardsachen wie Widgets, Network, XML, Multimedia etc. auf alle Plattformen portiert wird. Wie der Stand da bei den GTK/GObject Bibliotheken ist weiß ich leider nicht. Windows klappt ja aber meistens relativ problemlos, siehe Gimp oder Pidgin.

Im Grunde bleibt aber eigentlich zu sagen das man es nicht so sehr von der Bibliothek abhängig machen sollte. Wenn Grundfunktionalität ohne großen Aufwand in Standard C/C++ geschrieben werden kann dann kann der meist auch relativ problemlos auf andere Plattformen übernommen werden. Besonderheiten gibt's bei Netzwerkfunktionalität, da muss man dann halt kapseln. Was sowieso in der Softwareentwicklung immer Sinn macht.

glasenisback

Avatar von glasenisback

Anmeldungsdatum:
20. November 2011

Beiträge: 1603

Kein Problem.

Was auf jeden Fall stimmt, ist dass Qt in Sachen Multiplattformunterstützung deutlich die Nase vor Gtk+ hat. Das ist aber auch kein Wunder, da Gtk+ immer noch nur eine "Grafik"bibliothek ist, Qt dagegen sich im Laufe der Jahre aber immer mehr zu einer Allroundlösung gemausert hat.

Antworten |