Grahpically Representing a Programming Language
May 16, 2008
I have been thinking about taking some programming language and making some sort graphical interface akin to StarLogo TNG but I may be approaching it too a posteriori. That is, I’m assuming a graphigal, i.e. spatial, representation of it would be necessarily good. But I think that follows from the principles of UI design: user interfaces are all about metaphors and similes, and the closer they are to experiences humans have evolved to handle well (like manipulating physical objects) the easier it is for humans to grok.
I thought long and hard about using Python but its syntax and semantics just don’t respond to spatialization very well. That’s when I thought of using Haskell and it might be just perfect for it.
When I was trying to model Python spatially I ended up with perverting it into some sort of data structure oriented language. That is, the graphical objects combine into bigger objects which represented data structures.
Haskell on the other hand would let me turn just about every user defined function into a physical object, and most built-in functions into a physical idiom. Rather than mere construction of playing blocks, I will translate operators (such as cons) into actions the user performs in the design environment.