[GUI] Mission Statement

Daan Leijen daanleijen@xs4all.nl
Thu, 06 Mar 2003 12:23:03 +0100


Hi Axel

> I tried to formulate a Mission Statement and I invite people to review it.

Great work! Thanks.

There are a few errors regarding the back-ends:

* Qt supports win32, bare X11, and MacOSX. However, none of these
platforms is supported with native look-and-feel but via Qt themes.
However, they are very good at achieving almost native look-and-feel and
it takes an experienced user on windows to see the difference. On KDE,
Qt is considered the native look-and-feel.
(btw. you need to pay TrollTech for commercial win32 apps)

* You forgot to add Tk, supports all platforms, albeit slowly and not
always natively.

* Same for Java AWT via JAPI.

* wxWindows supports Win32, MacOS 9/X, GTK, OS2, Motif and X11 with native
look-and-feel. Through GTK, it also supports KDE and Gnome rather well allthough the apps look different than Qt apps on KDE.

* You write: "If discrepancies in look-and-feel is not a big issue, they
  would choose a back-end like wxWindows to run on all platforms"
This is not true at all -- people tend to choose wxWindows over Qt *because*
it offers native look-and-feel. Use Qt or Tk as your example.

* "This backend [wxWindows] might not give access to all functions available
  on a platform"
In contrast, wxWindows normally gives *more* functionality than is natively
available by implementing that functionality on top the native interface.
Examples are advanced tree and list controls, or MDI frames. Use, uhh, X11 as your example here :-)

On the other hand, you are right, there is always functionality that is
only available on a specific backend, GTK, win32 etc. but that will never
be available as part of a portable library  (things like a "control panel"
application just don't make sense on other systems than win32).

All the best and thanks for the writing up,
 -- Daan.


ps. Just some thoughts about the KDE/Qt connection -- it seems that Qt is
the preferred GUI API on KDE  (allthough GTK is also supported). However,
Qt is not just an API (like win32 for example) but also a object oriented
framework to structure your application. This is nice for C++ or Python users,
but rather bad news for Haskell users! (WxWindows suffers from the same problem
although I was able to circumvent it by piggy backing on the work of the
wxEiffel people. Same for Java AWT, but fortunately, JAPI exists now)