"Langzeitunterstützung" von GTK / QT

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
bastel-wastel
User
Beiträge: 28
Registriert: Samstag 20. Februar 2010, 15:14

Hallo zusammen,
ich hätte eine Frage zur Langzeitunterstützung von QT bzw. GTK.

Hintergrund: Ich habe einige kleine (<500 Zeilen) Rechenskripte (scipy, matplotlib) geschrieben. Damit die für meine Kollegen benutzbar sind, soll jeweils ein kleines GUI darüber gestülpt werden. "Installiert" werden die Programme auf einem zentralen Linux-Server. Die Programme werden eher selten genutzt, sollten aber auch noch in zehn Jahren funktionieren.
Bei früheren Programmen habe ich auf GTK gesetzt, wobei ich die GUI mittels "glade" zusammen geklickt und anschließend per python angesteuert habe.

Jetzt habe ich mir die Frage gestellt, ob ich auf dem richtigen Weg bin. Wenn ich heute mit python+gtk ein Programm baue, läuft das dann auch in zehn Jahren unter einer neuen GTK-Version oder muss zwingend die "alte" GTK-Version installiert werden. Was mache ich, wenn ältere GTK-Varianten für die Distribution nicht mehr angeboten werden? Können Programme (die nur rudimentäre widgets einsetzen) mit wenig Aufwand auf neuere GTK-Versionen portiert werden?

Oder generell: Wäre QT hierfür besser geeignet? Die beste "Langzeitunterstützung" hätte ich vermutlich mit tkinter, aber ich würde doch gerne den Komfort von glade/qt-designer nutzen.

Grüße bastel
BlackJack

@bastel-wastel: Eine solche Frage so weit in die Zukunft macht IMHO wenig Sinn. Innerhalb von 10 Jahren kann sich bei Betriebssystemen und Benutzeroberflächen so viel ändern. Vielleicht werden Rechner dann mit Gesten, Mimik, Augenbewegungen, und Sprache gesteuert und nicht mehr mit Maus und Tastatur und die Benutzeroberflächen sind komplett anders aufgebaut. :-)

Zur GUI-Bibliothek selber kommt auch noch die Python-Anbindung die sich auch ändern kann. Bei Qt gibt es PySide neu und vielleicht entwickeln sich PyQt und PySide auseinander oder eines der Projekte wird aufgegeben, und spätestens mit dem Schritt von Gtk 2 zu Gtk 3 muss man von PyGtk auf `gi` umsteigen. Das einzige womit man rechnen darf was sich nicht verändert, ist die Tatsache das sich dauernd alles verändert. :-D

Also muss man sich entweder Gedanken darüber machen wie man die Aktualität des Programms sicherstellt, also zum Beispiel einmal im Jahr prüft ob man es überarbeiten sollte, oder man plant von vornherein mit ein, dass es irgendwann auf eine virtuelle Maschine umziehen wird, auf der dann ein für IT-Verhältnisse uraltes System läuft. :-)
Benutzeravatar
diesch
User
Beiträge: 80
Registriert: Dienstag 14. April 2009, 13:36
Wohnort: Brandenburg a.d. Havel
Kontaktdaten:

GTK 2 ist 2002 erschienen, GTK 1 ist in Debian aber erst ab Lenny (2009) nicht mehr enthalten. Wenn man davon ausgeht, dass das bei Gtk 3 ähnlich läuft, hast du in 10 Jahren noch gute Chancen, in 15 wird es aber wohl eng.

Die Portierung von GTK 2 auf GTK 3 ist unter Python relativ problemlos, es ändern sich hauptsächlich einige Namen. Wie das bei GTK 23 nach GTK 4 aussieht, weiß aber heute natürlich niemand.

Ich würde auf jeden Fall auf eine gute Trennung zwischen GUI-spezifischen Code und dem Rest achten. Möglicherweise lohnt es sich, alle GTK-spezifischen Funktionen in ein Modul auszulagern, so dass deine Programme GTK gar nicht direkt einbinden müssen.
http://www.florian-diesch.de
bastel-wastel
User
Beiträge: 28
Registriert: Samstag 20. Februar 2010, 15:14

Danke Euch beiden,

ihr habt natürlich Recht, dass man in der IT-Welt nicht besonders weit in die Zukunft extrapolieren oder gar von "zukunftssicher" sprechen kann. Ich habe mich auch ein wenig gescheut diese Thread überhaupt zu öffnen :D
Auf eine saubere Trennung zwischen den eigentlichen Programmfunktionen und der grafischen Oberfläche werde ich achten. Werde dann wohl auch bei GTK bleiben, da ich hier schon etwas Erfahrung habe. Möglicherweise muss ich die Programme dann in einigen Jahren portieren. Aber vielleicht braucht man diese bis dahin ja gar nicht mehr ;)

Grüße
bastel
BlackJack

@bastel-wastel: Es reicht wahrscheinlich das jetzt mit `gi` und Gtk 3 umzusetzen und wenn Gtk 4 raus kommt die Dokumentation nach Anleitungen und Hinweisen zur Portierung von Gtk 3-Code durchzugehen und das entsprechend umzusetzen. Üblicherweise gibt es dann ja immer Abschnitte welche Datentypen und Funktionen veraltet sind, mit Hinweisen was man stattdessen verwenden sollte.
Antworten