Musings on an Erlang GUI System.

Joe Armstrong joe@REDACTED
Fri Feb 14 21:58:33 CET 2003

I have been thinking about GUIs for a long time :-)

IMHO I have only found *one* approach that I like -

This is called "The Aesthetic Toolkit" and it's by

Tor Andersson

Just take a look at the screen shots at

This stuff is drop-dead-beautiful. (warning it's very alpha - stuff
written in objective C etc.) - with a bit of help
we did manage to get it running :-) 

I have had many and long mail correspondence with Tor -
about this and we are trying to do *something*

IHMO all this swing/motiv/you name stuff it is all *wrong*

I think the only decent way to define a GUI is to *draw* it in a page
description language - this is *extremely* declarative and very easy
to understand.

What I'd like to see is *one* page description language that can be
used for making GUIs AND pages of printed text.

My currently favorite hobby hack is production of PDF *directly* from
Erlang - this will make things like direct transforms from XML -> PDF

(I'd tried XML -> FOSI (with XSLT) and TeX) and the results were crap
(this is the "industry standard" approach :-)

IMHO there is *no difference* (or should be no difference) between
layout on paper and layout on the screen - so I do not want *two*
technologies for this but only *one* - by far the best technology for
layout on paper is PDF - and for screen rendering is the anti-aliased
font stuff in the freetype project.

What Tor did was to make a form of "display PDF" which you could use
to write a GUI.

I'm currently thinking about the "high quality paper output" stuff,
and have written quite a bit of code to do line-breaking, kerning etc.

To my horror I have discovered that most commercial software totally
ignores all the kerning information (ligatures) etc in font files -
uses almost random font substitutions and generally makes a mess of

<< flame on

Desktop publishing has ruined typography - did you know that, for
example that Times New Roman is one of the most widely used fonts for
printing on A4 - but that is was *explicity* designed in 1931 (for the
times newspaper) for setting *narrow columns of type*.

Typography standards have been set back 20 years by desktop publishing

end >>

I'd very much like to see a re-unification of typography and GUIs
resulting in very high quality printed output and beautiful GUIs with
*one* way of describing them.

<< in a few years we'll probably have electronic paper and then they *will*
have merged back into one medium - the current dichotomy between screen and paper
is unfortunate, and probably only temporary >>

My second thoughts on a GUI are that it should be *entirely* based on
message passing - like X-windows - In principle I want the GUI to run
on one machine and I want the control process to run on another
machine - if we wrote them like this then we could write wonderful
apps - spawning of GUI's on remote machines etc.  great fun ...


More information about the erlang-questions mailing list