Good Looking UI for a stand alone application

Chris Mellon arkanes at gmail.com
Tue Dec 19 09:15:18 EST 2006


> Ok, now here's a question for you: if crossplatform toolkits/frameworks
> are sooooo great and automagically allow to produce superlickable and
> native-looking/feeling applications on all three major platforms, why is
> there so few of those applications on OS X ?
>
> "Because Mac users are elitists assholes" is not the good answer by the
> way :)
>

You've got a ridiculous straw man here. Nobody has ever said that they
do this, and nobody with any experience would. I don't actually think
you're interested in what is possible and what isn't, and I don't even
think that you actually evaluate the screenshots in a context where
it's possible for you to have any other opinion.

wx is the only popular toolkit of it's kind - it's a wrapper toolkit,
that uses actual native controls, not just ones designed to look like
them. For many wxPython/wxWidgets applications, there is *no
difference* between an app written directly to cocoa and a wxwidgets
app besides the API the author used. None, zero, zilch. Any "feel"
issues you claim to be present are solely because the author either
didn't know about or didn't care about a convention on the mac
platform.

The only other major cross platform toolkit with good mac support is
Qt, and I don't follow it's development closely. It may also use
native controls, at least in some cases, or it may still render
everything via the presentation manager, but regardless it's got a lot
of work and again, in most cases, it's hard if not impossible to tell
the difference between a "native" app and a qt one. I'm not a qt
expert so I won't spend too much energy defending it.

The look is easiest, of course. There's more to the look than just
that, of course, there's things like the stock behavior of controls.
wxPython gets that mostly for free, because it's using actual native
controls. There's things like the button order and layout, and wx
provides APIs to address that. Not everyone uses them, which is too
bad. There's some standard platform conventions like where your menu
items go. wx provides support for that. There's the fairly minor
issues of making sure your layout works with differently sized
controls and text, the wx layout mechanism addresses that.

Finally, there's some poorly defined "mac style" issues. wx, and no
toolkit, not even the native one, can address that. Many cross
platform apps are written on Windows with windows users in mind and
use windows assumptions, like that it's fine for a context menu to be
the only way to interact with something. This category is where almost
all complaints against cross platform apps fall, and it's ridiculous
because it's not something that a toolkit can address. You can, and
people do, write exactly the same sort of interface into mac native
applications. FinkCommander is a good example.

There's a few more caveats I haven't addressed, and there are places
where wx isn't perfect.  In wxPython, there are quite a few commonly
used controls that are custom controls hand-designed in Python, and
don't wrap native controls, so that can be a problem. It's not a
panacea, and anyone who sells it as such is wrong. But it doesn't
"suck", either. And it's a lot easier than maintaining multiple GUI
codebases, especially for platforms that don't see as much use.

Why are there so few applications? The real answer is probably that
the mac developer community is smaller than either the windows or
linux dev community, and people who develop for the mac tend not to
care about any other platform. So most of the crossover comes from the
other direction, and the mac community, being elitist assholes, makes
scathing comments about how it assumes you have 2 mouse buttons.

FYI: OS X ships with wxWidgets installed. How many applications built
into OS X are built using it? Are you sure? How would you know?



More information about the Python-list mailing list