Ist XML bei Glade ok?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Triopsfreak
User
Beiträge: 10
Registriert: Mittwoch 27. Juni 2012, 22:31

Ich habe hier gelesen, dass man XML nicht verwenden darf, weil es einfach unflexibel ist. Ist auch verständlich, bei Java kann eigentlich ja nur der Entwickler etwas am Source-Code ändern, bei Python geht das ja einfacher, da man keinen Compiler benötigt, Python ist einfach flexibler.
Was ist aber mit Glade? Mit Glade kann man ja Oberflächen erstellen, relativ einfach, danach einfach speichern und man kann es verwenden.
Oder ist es bei Python auch so wie in Java, dass man Oberflächen "von Hand" designet, also den Source-Code selber schreibt und Window-Builder höchstens zu Testzwecken gebraucht?

Darf man Glade verwenden, auch wenn es "unflexibles" XML verwendet?
BlackJack

@Triopsfreak: Da steht Du sollst kein XML-Format erfinden und kein XML (per Hand) schreiben, wenn sich das irgendwie vermeiden lässt. Was eine fertige Anwendung verwendet, was Du selbst nicht anfassen musst, und wo Du keinen Code zum parsen schreiben musst, kann Dir doch herzlich egal sein. Glade/Gtk könnte das XML durch JSON, S-Expressions, oder Lua-Quelltext ersetzen, ohne das Du als Anwender davon etwas mitbekommst. Das zusammenklicken der GUI und die API zum laden der Daten müssten sich dadurch nicht ändern.
Triopsfreak
User
Beiträge: 10
Registriert: Mittwoch 27. Juni 2012, 22:31

Danke für die Aufklärung! :)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Die Sache ist auch die, dass XML als Austauschformat meist OK ist. Klar, man kann JSON oder andere Sachen nehmen, bei XML existieren aber bei den meisten Parsern schon Parser dafür. Und das Glade XML (btw. das von GtkBuilder, was offenbar nun zu bevorzugen ist) ist eben genau das, ein Austauschformat zwischen einer Applikation (Glade) und einer anderen (deiner Applikation via der Blackbox die libglade bereitstellt). Es ist keine Konfiguration oder kein Quelltext darin enkodiert. Als solches ist es OK. Heutzutage könnte man vermutlich JSON nehmen, aber Glade gibt schon länger XML aus, als der Begriff "JSON" existiert ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Triopsfreak
User
Beiträge: 10
Registriert: Mittwoch 27. Juni 2012, 22:31

Ok, das erscheint schlüssig.
Wie ist das mit Window-Buildern, darf man die für richtige Anwendungen verwenden oder nur um irgendetwas auszuprobieren?
BlackJack

@Triopsfreak: Das darfst Du selbstverständlich verwenden. Das ist *das* Format um GUI-Layouts für Gtk zu speichern. Bei Java rät man ja üblicherweise von so etwas ab weil es zig verschiedene GUI-Builder gibt, die alle untereinander nicht einfach austauschbar sind, und man sich deshalb auf eine bestimmte IDE und dort dann oft auf ein bestimmtes Plugin festlegen würde. Zumal viele dieser Werkzeuge Quelltext erzeugen, mit Kommentaren welche Abschnitte man dort nicht ändern darf, weil sonst der „round trip” Quelltexteditor ↔ GUI-Builder nicht mehr funktioniert.

Die GUI-Builder für Gtk und Qt sind dagegen unabhängig von einer bestimmten IDE und man kann die gleichen GUI-Daten in vielen verschiedenen Programmiersprachen verwenden. Eben alle die eine Anbindung an die GUI-Bibliotheken bieten.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

BlackJack hat geschrieben:Bei Java rät man ja üblicherweise von so etwas ab weil es zig verschiedene GUI-Builder gibt, die alle untereinander nicht einfach austauschbar sind, und man sich deshalb auf eine bestimmte IDE und dort dann oft auf ein bestimmtes Plugin festlegen würde.
Das Festhalten an diesem Konzept habe ich nie verstanden - oder gibt es abseits von QtJambi da etwas ähnliches? Ist es nicht sogar so, dass in der .NET-Welt mittlerweile auch auf Code unabhängige GUI-Beschreibung gesetzt wird?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hyperion hat geschrieben:Ist es nicht sogar so, dass in der .NET-Welt mittlerweile auch auf Code unabhängige GUI-Beschreibung gesetzt wird?
Solche Beschreibungen waren bei Microsoft sogar deutlich früher üblich, via RES-Dateien die in die EXE-Datei einkompiliert wurden. Eben deswegen gab es erst so Tools wie Restorator und ResHacker, mit denen man die UI editieren konnte.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten