2009/1/29 Conal Elliott <
conal@conal.net>:
Hi Achim,
I came to the same conclusion: I want to sweep aside these OO, imperative
toolkits, and replace them with something "genuinely functional", which for
me means having a precise & simple compositional (denotational) semantics.
Something meaningful, formally tractable, and powefully compositional from
the ground up. As long as we build on complex legacy libraries (Gtk,
wxWidgets, Qt, OpenGL/GLUT, ...), we'll be struggling against (or worse yet,
drawn into) their ad hoc mental models and system designs.
As Meister Eckhart said, "Only the hand that erases can write the true
thing."
I think working on a purely functional widget toolkit would actually
be a really cool project. Do you have any ideas, though, on what
should be the underlying primitives?
The initial gut feeling I have is that one should just ignore any
notion of actually displaying widgets & instead focus on a clean
algebra of how to 'add' widgets that relates the concepts of
inheritance & relative position. What I mean by inheritance, here, is
how to direct a flow of 'events'. I don't necessarily mean events in
the Reactive sense, because I think it'd be important to make the
model completely independent of how time & actual UI actions are
handled.
Any thoughts to throw in, here?
Cheers,
C