pinky
König
Hallo,
ich weiß das diese Thema absolutes flame Potential hat. Trotzdem will ich mal den Versuch machen es einigermaßen objektiv zu diskutieren, so wie ich das Forum hier kennen geklernt habe denke ich das es durchaus möglich sein könnte.
Also ich beginne einfach mal mit meiner Meinung/Erfahrung und hoffe dann auf rege Beitligung:
Lange Zeit gehört ich zu denjenigen die in Qt das technisch beste Toolkit sahen:
- C++ (sicher eine gut geeignete Sprache für GUI sachen und sehr weit verbreitet)
- Qt macht es wirklich einfach, auch an Stellen wo C++ selber etwas "komplizierter" ist.
Mittlerweile sehe ich Qt etwas anders. Wenn man mit Qt programmiert hat man sehr schnell einen Quellcode voller QString, Qfoo, Qbar,... Sachen. Ok, als man mit Qt anfing gab es noch keinen namespace, ich denke langsam wäre es aber mal an der Zeit etwas aufzuräumen und die Qt Sachen sauber in ihren eigenen namespace zu packen (Qt::String usw).
Ausserdem fällt immer stärker auf, dass Qt an vielen Stellen das Rad neu erfindet anstatt auf bewährte C++ und STL Sachen zurück zu greifen. Es mag sein, dass es an der einen oder anderen Stelle sinnvoll ist und die Programmierung vereinfacht (siehe auch meine Vorteile von Qt), aber auf der anderen Seite entwickelt man sich damit immer weiter Weg von C++ und kann bei Qt fast schon von einer "eigenen" Programmiersprache auf der Basis von C++ sprechen. Dadurch wird auch das bewährte Konzept verhindert oder zumindest gestört Daten und GUI zu trennen, da die Versuchung groß ist auch bei den Daten Klassen eine bequeme Qirgendwas Klasse zu verwenden als Standard C++, wodurch die Programme sehr stark auf Qt festlegelt sind und eine Portierung nur noch sehr schwer bis unmöglich ist.
Dazu kommt, dass es einen in meinen Augen zu sehr verwöhnt, als ich eine Zeit lang Qt-GUI Programme geschrieben habe, hatte ich echt Probleme wieder in "normales" C++ rein zu kommen, da ich es gewohnt war die ganzen QIrgendwas Klassen zu verwenden.
Auf der anderen Seite der großen Toolkits steht Gtk+, was ich für technisch eher schlecht gehalten habe, da eben in C geschrieben. Mittlerweile sehe ich das etwas anderes.
Die Basis in C zu schreiben hat durchaus seine Vorteile, da C wahrscheinlich die Sprache ist die am einfachsten und besten auf allen Systemen läuft (u.a. auch wegen dem kleinen Sprachumfang) und man von C ausgehend sehr einfach verschiedene Sprachbindings entwickeln kann, so ist niemand gezwungen heute GUI Anwendungen in C zu schreiben. Diese hohe Flexibilität erlaubt es immer mit der Zeit zu gehen, egal ob es die C++ Bindings, "exotischere" Sprachen wie lisp, scheme, perl, python, php,... waren, oder wie aktuell mit Mono gezeigt die schnelle anbindung an neue Technologien mit gtk#. Wodurch eigentlich jeder, egal welche Sprache oder Technologie er bevorzugt mit Gtk einfach GUI Anwendungen schreiben kann und gleichzeitig (im Gegensatz) zu Qt aber auch wirklich die gewählt Sprache verwendet, Trennung von Daten und GUI also einfach zu machen sind.
Für Qt gibt es auch Sprachbindings, allerdings sind es deutlich weniger und sie werden deutlich "Stiefmütterlicher" behandelt.
Daher habe ich meine Meinung mittlerweile geändert und ich halte Gtk+ für das technisch bessere Toolkit.
Was ist eure Meinung? Ihr könnt natürlich auch noch andere Toolkits in die Diskussion einbringen, ich wollte mich jetzt mal auf die zwei größten konzentrieren damit der Beitrag nicht zu lang wird.
ich weiß das diese Thema absolutes flame Potential hat. Trotzdem will ich mal den Versuch machen es einigermaßen objektiv zu diskutieren, so wie ich das Forum hier kennen geklernt habe denke ich das es durchaus möglich sein könnte.
Also ich beginne einfach mal mit meiner Meinung/Erfahrung und hoffe dann auf rege Beitligung:
Lange Zeit gehört ich zu denjenigen die in Qt das technisch beste Toolkit sahen:
- C++ (sicher eine gut geeignete Sprache für GUI sachen und sehr weit verbreitet)
- Qt macht es wirklich einfach, auch an Stellen wo C++ selber etwas "komplizierter" ist.
Mittlerweile sehe ich Qt etwas anders. Wenn man mit Qt programmiert hat man sehr schnell einen Quellcode voller QString, Qfoo, Qbar,... Sachen. Ok, als man mit Qt anfing gab es noch keinen namespace, ich denke langsam wäre es aber mal an der Zeit etwas aufzuräumen und die Qt Sachen sauber in ihren eigenen namespace zu packen (Qt::String usw).
Ausserdem fällt immer stärker auf, dass Qt an vielen Stellen das Rad neu erfindet anstatt auf bewährte C++ und STL Sachen zurück zu greifen. Es mag sein, dass es an der einen oder anderen Stelle sinnvoll ist und die Programmierung vereinfacht (siehe auch meine Vorteile von Qt), aber auf der anderen Seite entwickelt man sich damit immer weiter Weg von C++ und kann bei Qt fast schon von einer "eigenen" Programmiersprache auf der Basis von C++ sprechen. Dadurch wird auch das bewährte Konzept verhindert oder zumindest gestört Daten und GUI zu trennen, da die Versuchung groß ist auch bei den Daten Klassen eine bequeme Qirgendwas Klasse zu verwenden als Standard C++, wodurch die Programme sehr stark auf Qt festlegelt sind und eine Portierung nur noch sehr schwer bis unmöglich ist.
Dazu kommt, dass es einen in meinen Augen zu sehr verwöhnt, als ich eine Zeit lang Qt-GUI Programme geschrieben habe, hatte ich echt Probleme wieder in "normales" C++ rein zu kommen, da ich es gewohnt war die ganzen QIrgendwas Klassen zu verwenden.
Auf der anderen Seite der großen Toolkits steht Gtk+, was ich für technisch eher schlecht gehalten habe, da eben in C geschrieben. Mittlerweile sehe ich das etwas anderes.
Die Basis in C zu schreiben hat durchaus seine Vorteile, da C wahrscheinlich die Sprache ist die am einfachsten und besten auf allen Systemen läuft (u.a. auch wegen dem kleinen Sprachumfang) und man von C ausgehend sehr einfach verschiedene Sprachbindings entwickeln kann, so ist niemand gezwungen heute GUI Anwendungen in C zu schreiben. Diese hohe Flexibilität erlaubt es immer mit der Zeit zu gehen, egal ob es die C++ Bindings, "exotischere" Sprachen wie lisp, scheme, perl, python, php,... waren, oder wie aktuell mit Mono gezeigt die schnelle anbindung an neue Technologien mit gtk#. Wodurch eigentlich jeder, egal welche Sprache oder Technologie er bevorzugt mit Gtk einfach GUI Anwendungen schreiben kann und gleichzeitig (im Gegensatz) zu Qt aber auch wirklich die gewählt Sprache verwendet, Trennung von Daten und GUI also einfach zu machen sind.
Für Qt gibt es auch Sprachbindings, allerdings sind es deutlich weniger und sie werden deutlich "Stiefmütterlicher" behandelt.
Daher habe ich meine Meinung mittlerweile geändert und ich halte Gtk+ für das technisch bessere Toolkit.
Was ist eure Meinung? Ihr könnt natürlich auch noch andere Toolkits in die Diskussion einbringen, ich wollte mich jetzt mal auf die zwei größten konzentrieren damit der Beitrag nicht zu lang wird.
Zuletzt bearbeitet: