ANNOUNCE - graphics package

Joachim Durchholz <>
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 
*huge* API.
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 [4], 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 
conceived...

Regards,
Jo
--
Currently looking for a new job.




More information about the erlang-questions mailing list