[r6rs-discuss] compilation and portability
Joe Marshall wrote:
> 3) There are few interesting problems (research-worthy problems) in
> this domain, just a hell of a lot of scutwork.
I think there are still interesting areas for research
if you define the problem to be "Write a platform-neutral
framework for GUI applications in Scheme," which
was clearly not your charter in the project we're discussing.
It sounds like y'all got bit here by the pervasive effects
of a GUI API (Wx itself) that was poorly designed
in the first place. Wx is Yet Another example of a
traditional design pattern "tree-of-widgets + callbacks in
an event loop". Again and again and again people
build toolkits to that pattern. Then the details of that
pattern start to pervade all of their other code, at all
levels. Then, to achieve new "special effects" in UIs,
they add more and more quirky cruft at the lowest
levels, and then spread *that* over all the other code.
Then, as happened to you when you needed
a wx binding for Larceny, you discover that all of that
low-level code has essentially bit-rotted in the face of
changing environments and requirements, and suddenly
you're 10s or 100s of thousands of lines of code in the
hole. With hundreds or a million lines of code dependent
on your getting out of that hole. Happens almost every time
someone uses these GUI frameworks. It's the same design
failures that cause projects like Gnome or any of the office tool
suites to grow very quickly for the first few years (before
the code becomes too intertwingled) and then slow down
if not completely stagnate.
I think there are still research-worthy questions about
how build GUI frameworks to different design patterns,
hopefully avoiding those problems (and discovering new ones!).
Funding for or from such work? Uh... that's a different
issue. But the research problems are still there. (How's
Kenny Tilton's Cells project doing these days?)
-t
Received on Thu Jun 21 2007 - 14:44:27 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC