[Haskell-cafe] Editor
Albert Y. C. Lai
trebla at vex.net
Mon May 21 15:38:10 EDT 2007
Michael T. Richter wrote:
> 1. A real GUI environment that takes into account some of the HID
> advances made in the past 30 years. (Emacs and Vim don't count,
> in other words.)
I for my life think HID refers to human input devices: keyboard, mouse,
joystick, gamepad, pedal, microphone, touchscreen... When this HID
statement is brought up, the first and only thing I think of is the
recent Mathematica 6: It supports the gamepad for rotating 3D plots.
Apart from that, absolutely no programming environment takes into
account much of the HID advances in the past 30 years; they only go up
to keyboard and mouse.
GUI, menu, modal, modeless... those would be HCI.
But that inspires some real fantasy for the next century.
I want to watch a function definition as a 3D thunk, and rotate it with
the gamepad. It is even better than a parse tree, because I want "let
x2=x*x in x2+x2" to be displayed as:
*
/ \
x2 x2
| |
-----------
+
/ \
\ /
x
or any topological equivalence. At my selection, some nodes stick out
blurbs containing their types or haddocks. No more 20th century dark age
dogma of vertical serialization of horizontal serialization of
characters euphemized as "plain text file", the least problem of which
is the sorry kludge of operator precedences and parenthesizing. In this
thread I ask, "can programming be liberated from the plain text file,
now that it is liberated from the von Neumann style?"
Module dependency graphs receive the same treatment. Modules in a
project are shown as a 3D graph. Using the gamepad, I rotate the graph,
bring a module to the forefront, and press the circle button to open it.
Debugging has never been more enticing! All CAFs and thunks are
displayed in 3D. (As usual, you can use the gamepad to change
perspective at will.) A small virtual organism, dubbed "the bug", walks
the thunks and does the graph reductions. You can of course interrupt
the bug and give explorative instructions. You may want to rename this
activity to "bugging". Imperative communities may boast the best
debuggers, but only in Haskell you find the best buggers!
(On second thought, dubbing the virtual organism "the alligator" may bug
you less.)
More information about the Haskell-Cafe
mailing list