ANNOUNCE - graphics package
Mon Jan 19 19:30:45 CET 2004
Luke Gorrie wrote:
> I have no crisp definition of this. I mean toolkits that have simple
> and general programming and user interfaces. Emacs is an excellent
> example, despite its obvious graphical limitations, because of these
> wonderful properties:
> Small number of objects to deal with:
> Buffer (displays text)
> Window (displays a buffer)
> Frame (what appears on the screen. displays a window, or can be
> split between several).
I don't think that's true. What's a control in other languages just gets
mapped to the existing objects, which means that every object gets a
Not that this in itself is a bad thing, it's just that you can't avoid
complexity just by hiding it under the hood of a few very general controls.
It's also an indicator that there's a wide spectrum, from frameworks
with many specialized minimal-API controls (MS Windows) over those with
few, fairly general ones (Tk, GTK+) to those with very few, extremely
powerful ones (Emacs). Personally, I'd stick with a middle ground: every
widget should have a clear purpose (buttons *are* different from text
input fields after all), but they should be as general as possible (a
button should be able to take up any kind of child control, not just a
bitmap or a text - if a designer places a text input field on a control,
he just gets what he deserves).
[I don't know enough about the Commands stuff that you describe to
comment on it.]
> Using programs like Mozilla I am *constantly* bumping against little
> niggles that I would immediately hack in any high-level interface. But
> with "modern" GUIs I have to go into hackstincts-suppression-mode and
> just take what I'm given. *Harrumph!* Is there some law of the
> universe that I shouldn't be able to select an item from a list by
> typing a unique substring of it, rather than pulling scrollbars around
> while trying to mentally perform alphabetical-sort ? *Harrumph* I say!
Mozilla is an excellent example of mediocre interface design :-)
However, I think here you're making a point for user-scriptable GUIs,
not a point for actual design decisions in ex11. (Not that user
scripting is a bad idea in itself.)
> There's also Squeak , which seems to be about the fanciest UI
> currently available. I don't have a feel for how "high level" it is in
> the sense sketched above though.
It offers many levels of abstraction, from the very down-to-earth stuff
to quite high-level widgets.
> The risk with OO seems to be having a
> huge number of datatypes and a small number of ways to manipulate
> them. The ultimate test of programmability might be to see if one can
> hack it into working solely via the keyboard, killing two birds with
> one stone :-)
In Squeak, the main problem would be to find the classes that are
responsible for a given abstraction level.
Also, you'd wrestle with software that uses the toolkit at the wrong
abstraction level (doing things at a lower-than-necessary level, so the
first thing to do would be to rewrite the software at the "right" level...)
The main reason for software working at a "too low" level would be that
this software was written before the higher abstraction levels were
Currently looking for a new job.
More information about the erlang-questions