[Python-de] Pythen Editor

Hans-Peter Jansen hpj at urpla.net
Don Aug 5 21:37:18 CEST 2004


On Thursday 05 August 2004 20:16, Diez B. Roggisch wrote:
> > >Layering ist ja ganz nett, aber irgendwann tut's weh!
> >
> > ?? was is das?
>
> Qt ist eine voellig eigenstaendige Implementation, die sich auf
> wenig bis garnix an Funktionalitaet des unterliegenden Systems
> stuetzt. Daher gibts das Ding fuer viele Plattformen, incl. Qt
> emdedded, und alle verhalten sich gleich.
>
> Wx dagegen versucht, eine Abstraktion zu schaffen, die eine Schicht
> (Layer) ueber bestehende guitoolkits legt. Also native Windows wo
> verfuegbar, gtk, motif, usw.
>
> Das Problem ist aber, das die unterliegenden Toolkits subtile
> Unterschiede haben, die eine Vereinheitlichung schwierig machen,
> und natuerlich auch immer nur "hinterherprogrammiert" werden kann,
> wenn ein toolkit neue features bietet.

Super erklärt, Danke, Diez. Spannend wird die Sache dann, wenn man 
berücksichtigt, das jedes dieser zugrunde liegenden Toolkits auch 
noch eine längere Entwicklungsgeschichte hat, die keinesfalls homogen 
ist, und daher schon in sich selbst API-Inkonsistenzen aufweist: z.B: 
w95, w98, nt, w2k, xp oder gtk 1.0, 1.2, 2.0...

Zu erwähnen wäre noch, daß jede Schicht bei jedem Funktionsaufruf Zeit 
kostet, was zusammen mit dem swig wrapping im Vergleich zu merklich 
langsameren Programmen führt. 

Im Gegensatz dazu realisiert sip (besonders in der Version 4) ein sehr 
flaches/effizientes Wrapping von Qt, nicht zuletzt schon dadurch, das 
keine Python Hilfsmodule mehr erzeugt werden. Die Qt-Funktionen 
stehen daher ohne Umwege in Python zur Verfügung stehen, sodaß sich 
unter PyQt, zumindest solange es die Oberfläche betrifft, niemand 
über zu langsame Programme beschweren kann.

Nach so viel Werbung will ich dann auch einen Nachteil dieser Technik 
nicht verschweigen: es hat eine manchmal unangenehme Eigenschaft von 
C++ geerbt: Garbage In -> Crash.

Okay, okay, falls es jemand noch nicht gemerkt hat, ich bin ein großer 
Fan von sip/PyQt/PyKDE... welche daher auch alle Patches von mir 
enthalten. Aber auch in wxPython müßten noch einige homeopathische 
Dosen enthalten sein ;-)

Ciao,
Pete