Das deutsche Python-Forum Foren-Übersicht Das deutsche Python-Forum
Diskussionen rund um die Programmiersprache Python
 
 FAQFAQ   SuchenSuchen MitgliederlisteMitgliederliste BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 Wiki FAQWiki FAQ WikiWiki ImpressumImpressum
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Swing & SWT

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche Python-Forum Foren-Übersicht -> Sonstige (Pygame, PyOpenGL, ...)
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Goswin
User


Anmeldungsdatum: 08.12.2006
Beiträge: 130
Wohnort: Ulm

BeitragVerfasst am: Mo Feb 01, 2010 09:38    Titel: Swing & SWT Antworten mit Zitat

Ich muss mich für ein GUI-Bibliothek entscheiden und sehe, dass (abgesehen von Tkinter, den ich kenne) in der Regel PyGtk, PyQt und wxPython bevorzugt werden.

Gibt es Gründe, die gegen Jython mit Swing oder SWT sprechen ?

Ich bin in meiner Arbeit der einzige Python-Nutzer: alle Kollegen programmieren in Java, und ich denke dass (1) mir deren Erfahrung sehr nützlich sein kann und (2) sie so meine Programme auch besser verstehen würden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
IoI
User


Anmeldungsdatum: 01.12.2009
Beiträge: 46

BeitragVerfasst am: Mo Feb 01, 2010 11:20    Titel: Antworten mit Zitat

Gerade für wxPython spricht ja, dass das Erscheinungsbild sich ein Betriebssystem bzw. WindowManager anpasst und der Benutzer so nicht das Gefühl bekommt, dass das Programm "eigentlich nicht für sein Betriebssystem" geschrieben wurde. Sollte das egal oder sogar aus Designgründen beabsichtigt sein spricht auch nichts gegen SWT/Swing. Es passt vielleicht sogar dann besser zu den Programmen deiner Kollegen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
lunar
User


Anmeldungsdatum: 04.08.2006
Beiträge: 2992
Wohnort: Da, wo die Telefonkabel noch oberirdisch verlaufen

BeitragVerfasst am: Mo Feb 01, 2010 11:59    Titel: Antworten mit Zitat

@IoI: Das ist nun beileibe kein Alleinstellungsmerkmal von wxWidgets. Auch Gtk und Qt integrieren sich in die jeweilige Umgebung, Qt sogar besser als wxWidgets.

SWT verhält sich im Übrigen ganz so wie wxWidgets und bindet die native GUI-Bibliothek ein. Daher sieht SWT in etwa so nativ aus wie wxWidgets.

@Goswin: Ich denke nicht, dass Python-Programme verständlicher werden, weil sie ein Java-GUI-Toolkit nutzen. Zu unterschiedlich sind Python und Java, zu verschieden die Konzepte, die hinter idiomatischem Quelltext der jeweiligen Sprachen stehen.

Für Swing spräche natürlich die Erfahrung Deiner Kollegen, und eine möglicherweise bereits vorhandene Bibliothek an Swing-Klassen innerhalb Deiner Firma.

Gegen Swing spricht dagegen, dass das Toolkit verglichen mit der Menge an Bibliotheken im Umfeld von Gtk und Qt (wxWidgets kenne ich nicht so) einen ziemlich geringen Umfang hat, und sich zudem sehr schlecht in die jeweilige Umgebung integriert.

Gegen Jython dagegen spricht allgemein die kleinere Community und der erzwungene Verzicht auf diverse native Erweiterungs-Pakete für CPython. Die kleinere Community äußert sich bei Problemen: Da Du in der Schnittstelle zwischen zwei Sprachen (Python als Sprache, Java bei den Bibliotheken) sitzt, gibt es weniger Leute, die sich richtig auskennen. Während Java-Entwicklern die Sprache fremd ist, sind Python-Entwicklern die Bibliotheken von Java eher unbekannt. Zudem sind Java-Bibliotheken natürlich mit Hinsicht auf Java-Konventionen und -Einschränkungen entworfen, und sind deshalb für Python-Entwickler eher „barock“. Im Vergleich zu lxml und ElementTree sind die Java-XML-Bibliotheken sehr unkomfortabel, im Vergleich zu SQLAlchemy ist Hibernate mit viel Arbeit verbunden.

Auf der anderen Seite gibt es natürlich eine riesige Masse an Java-Bibliotheken für jedes erdenkliche Problem, zudem ist jython zumindest theoretisch schneller, denn dieser Interpreter profitiert ja von der Arbeit, die Sun in die JVM gesteckt hat.

Zu SWT kann ich nichts sagen, dieses Toolkit kenne ich nicht.
_________________
Freiheit ist immer die Freiheit der Andersdenkenden.
(Rosa Luxemburg)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BlackJack
Moderator


Anmeldungsdatum: 25.01.2005
Beiträge: 9942

BeitragVerfasst am: Mo Feb 01, 2010 15:23    Titel: Antworten mit Zitat

Will ich auch mal meinen Senf dazugeben: Ich muss mich gerade mit Jython auseinandersetzen, da ich für ein Programm/Projekt zwingend eine bestimmte Java-Bibliothek benutzen muss.

Die Jython-Programmierer haben ein paar kleine Automatismen/Adaptionen implementiert, um typische Java-Objekte ein klein wenig "pythonischer" erscheinen zu lassen.

Zum Beispiel kann man einfach Attribute verwenden, wenn die Java-Klasse Getter oder Setter besitzt und man kann Tupel mit Argumenten für Konstruktoren verwenden, wenn Jython den Typ dafür ermitteln kann. Beispiel:

Code: (Plaintext)
1
2
3
4
5
circle = new Circle(new Point(23, 42), 4711);
System.out.println(circle.getRadius());
System.out.println(circle.getCenter());
circle.setRadius(1);
circle.setCenter(new Point(0, 0));


So eine Java-Klasse kann man von Python aus so verwenden:

Code: (Python)
1
2
3
4
5
circle = Circle((23, 42), 4711)
print circle.radius
print circle.center
circle.radius = 1
circle.center = (0, 0)


Für Datenbanken gibt's ein DB API 2.0-Modul, dass die JDBC-API wrappt, man kann also jede Datenbank, für die es eine JDBC-Anbindung gibt, "pythonisch" verwenden. Aktuelle SQLAlchemy-Versionen sollen angeblich auch mit Jython laufen.

Für XML gibt's ja das "langsame" ElementTree in der [JP]ython-Standardbibliothek. Ansonsten ist JDOM etwas weniger schmerzhaft als die Standard DOM-API.

Mit ein bisschen "Glue"-Code, entweder in Java oder in Python, bekommt man sicher auch die ein oder andere Java-Bibliothek "pythonisch" genug, dass man den Brechreiz unterdrücken kann. Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen AIM-Name
lunar
User


Anmeldungsdatum: 04.08.2006
Beiträge: 2992
Wohnort: Da, wo die Telefonkabel noch oberirdisch verlaufen

BeitragVerfasst am: Mo Feb 01, 2010 18:41    Titel: Antworten mit Zitat

@BlackJack: Schick, schick, das wusste ich nicht …
_________________
Freiheit ist immer die Freiheit der Andersdenkenden.
(Rosa Luxemburg)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche Python-Forum Foren-Übersicht -> Sonstige (Pygame, PyOpenGL, ...) Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
using CodeBB 1.1