March 27, 2007
Visual programming languages get a bad rap because they are too “verbose” compared to text. However, I’m becoming much more interested in visualization techniques. An embedded visual programming language (eVPL) might simplify complex constructs that are tedious to write out in text within a single method. What does it mean to be visual? I think it’s anything beyond mere ASCII. I’d like to modify a method browser in Smalltalk so I can switch the input language for a method. For example, I could create a method called FFT and switch the input language to an equation editor. Then I can draw a recursive FFT equation so it looks like a properly typeset equation. To draw complex state diagrams, simply create a method and switch the input language to an eVPL for state machines. What else would be better as an eVPL? A bit-ordered packet can be described graphically and the code to un/marshal can be generated automatically. Microsoft’s Visual Studio has a SQL query generator that is a good example of an eVPL. Logic tables might also be useful, as would a decision tree. I’m stuck on complex conditionals right now, but I’m sure there are many more domain-specific eVPLs that could be implemented. The point is you need an editor capable of handling embedded graphics, and Squeak is the only thing AFAIK that might be capable. I really need to figure out Squeak someday.