rjshaw at netspace.net.au
Fri Jan 29 05:04:41 PST 2010
Daniel Stone wrote:
> On Fri, Jan 29, 2010 at 10:53:11AM +1100, Russell Shaw wrote:
>> Glynn Clements wrote:
>>> Russell Shaw wrote:
>>>> Forget widget toolkits. They're totally lame wrappers that hide
>>>> all the useful functionality from you, run like a waterlogged
>>>> sheep, and otherwise assume you don't want to get anything really
>>>> nontrivial running this month.
>>> On the contrary, using bare Xlib you would be hard pressed to write
>>> even a trivial application within a month unless you're willing to
>>> give up a lot of features which many people would take for granted
>>> (e.g. configuration, support for multiple locales, interoperability
>>> with other applications, etc).
>>> As with many things, being different is automatically a loss, so you
>>> have to do better on the other aspects just to break even.
>> One can make their own widget libraries based on Xlib, then write apps
>> using the libraries. Nothing hard about that ("hard" is relative;)
> It's not 'hard' in the sense of being groundbreaking CS research, no,
> but it would take an immense amount of time to get non-Western scripts
> (including bidi), accessibility, copy & paste, full ICCCM compliance
> including doing the right thing with EWMH, input (including input
> methods), selections, etc working properly and correctly. Oh, and your
> app doesn't look anything like any other app now.
All that is done to a degree. Theming engine allows apps to look and act
like any other system. Once you architect the full depth of the problem
with minimal things that work at every stage, you can add more parallelable
features whenever required.
> Ooh yeah, and your app has no concept of double-clicking. You could
> reimplement it and have it be completely different to the rest of the
> system (different maximum time between clicks, different maximum
> distance between click positions, etc) if you like. All the little
> stuff like this really does add up.
Would you like a ctrl-shift+triple-middle-click popup menu? I only make
useability different if i know it's the right thing to do.
> Please, please, stop telling people to write their own toolkits; it's
> quite possibly the worst advice I've ever heard on this list, to be
I didn't say it would be unconditionally easy, but to solve an
immediate engineering problem of drawing to a full screen and having
a menu, Xlib + OpenGL + Glut is fairly easy.
Progressing on from that and creating new widgets is useful innovation
that can solve many more problems.
All the answers to do anything you want is available on the web, email
lists, and in books. It's definitely not quick and easy to do the whole
I wouldn't be recommending any of this if i found existing widget toolkits
easy to make new non-trivial widgets that run well. I've battled widget
toolkits since Windows95. The code for various existing X toolkits is
inpenetrable, and made overly complex for porting to non-X systems
that i don't require. Having thought through many problems, these
codebases can be more comprehensible, but what's the use when one
has had to figure out how to make a toolkit in order to figure out
how to fix one?
More information about the xorg