Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03572.jsonl.gz/153

Programmieren an sich ist ja nicht so schwer, sollen die Programme aber auf verschiedenen Plattformen laufen, muss man einige Dinge beachten. Auf der einen Seite muss die Programmiersprache auf allen gewünschten Plattformen unterstützt werden (sprich es muss einen Compiler/Interpreter geben) und es sollten keine Bibliotheken verwendet werden, welche auf “native code” (Code, welcher für ein spezifisches Betriebssystem/CPU programmiert/compiliert wurde) setzen.
Es gibt diverse solcher Sprachen (Python, Java, Ruby, Mono, etc) und jede hat Vor- und Nachteile. Insbesondere wenn man nicht nur Konsolenprogramme schreiben will wird es meistens kompliziert. Frameworks für GUIs arbeiten meist nur auf einem Betriebsystem, da viel betriebsystemspezifischer Code verwendet wird. Deshalb habe war ich schon seit längerer Zeit auf der Suche nach einem GUI Framework, welches dieses Problem löst. Vor ein paar Wochen entdeckte ich “Apache Pivot”.
Apache Pivot ist ein Framework um GUIs für Java zu implementieren, welche auf verschiedenen Plattformen funktionieren. Das GUI wird in einem XML-File definiert. Grundlegende Elemente können so eingefügt werden. Elemente können auch später mittels Java Code hinzugefügt werden. Das Framework funktioniert für normale Programme, Applets und es sollten sich sogar Web-Applikationen erstellen lassen (Die WebApps habe ich aber noch nicht ausprobiert).
Die Java-Programme funktionieren auf Windows, Mac OS X und Linux (im Grunde überall wo eine grafische Oberfläche vorhanden ist und Java unterstützt wird). Die Performance ist sowohl auf Windows als auch auf Mac OS X gut (Linux habe ich nicht so ausführlich getestet). Wenn nicht so sauber programmiert wird reagieren die Programme speziell unter Windows nicht ganz so schnell. Insbesondere bei Buttons, wenn grössere Aktionen ausgeführt werden sollen, muss diese in einem neuen Thread gestartet werden. Wenn da Fehler passieren, reagiert das GUI träge.
Alles in allem gefällt mir das Framework, es ist schnell, einfach zu benutzen und man kann es in bestehende Programme Integrieren (und so langsam zum Beispiel ein SWING-Interface durch Apache Pivot ersetzen).