linux-l: Linux, Motif und C++

Mathias Born mborn at faphida.in-berlin.de
So Okt 19 13:22:26 CEST 1997


On Sat, 18 Oct 1997, Ralf Comtesse wrote:

> Hallo Leute,
> 
> ich bin nun endlich im Besitz von Motif 2.0. Gibt es dafuer eine C++
> Klassenbibliothek, die das ganze schoen einpackt. Am besten natuerlich
> mit einem Oberflaechenmaler und umsonst ;-)))

Das Problem mit Motif ist, daß es für die Programmierung in C sehr
geeignet ist, für C++ degegen überhaupt nicht.
Grund:
Motif deklariert für jeden Mist eigene Datentypen. Nun könnte man
natürlich die Header-Dateien durchforsten und darum herumprogrammieren,
ist dann aber nicht mehr garantiert portabel (auch was andere
Motif-Implementationen angeht).
Wenn eine C++ Bibliothek alle Möglichkeiten von Motif nutzen, diese
aber in C++ Sytle anbieten will, gibts Probleme.
Bsp: Compound-Strings oder GUI-Listen. Hier müssen mehrere Objekte
gleichen Typs transferiert werden (eben eine Liste). Motif regelt das über
C-Arrays, deren Elemente Motif-Datentypen sind. C++ würde dafür
Containerklassen verwenden. Also beginnt man, die Container in die
Motif-Arrays umzukopieren und umgekehrt. Tolle Resourcen-Verschwendung!
So zieht sich das durch das gesamte Motif-API.

Man braucht sich nur StarView anzusehen (Darauf bauende Programme:
StarOffice). Diese Bibliothek wird unter Motif an Langsamkeit nur noch
durch Papier und Stift überboten. Windows oder OS/2-Presentationmanager
bieten hier zwar auch nur C-APIs, diese sind aber wesentlich
programmierfreundlicher und C++ geeigneter.

Ein weitere großer Nachteil von Motif ist, daß es als Widget-Sammlung
keine grafische Funktionalität mitbringt. Man ist nach wie vor an reine
XLib-Funktionen gebunden.

Es wurde auch Qt erwähnt.
Was jedoch kaum bekannt zu sein scheint: der größte Teil von Qt befasst
sich mit geräteunabhängiger Grafikausgabe und der Umgehung der Macken von
X und den verschiedenen Windowmanagern. Nur ein kleiner Teil realisiert
die GUI-Elemente.
In Qt wird ein riesiger Aufwand getrieben, um eine Umgebung zu schaffen,
wie sie Windows und OS/2-PM *von Natur aus* schon mitbringen. Teile von Qt
übernahmen hier Aufgaben, die unter Windows und OS/2-PM von den
Grafiktreibern erledigt werden.

Das alles fehlt Motif...

Andererseits sind Windows und OS/2-PM nicht netzwerktauglich wie X und
auch nicht so alt...


Mathias






Mehr Informationen über die Mailingliste linux-l