One of the persistent features of the user programmable systems I was blabbing about yesterday is visual programming. The idea here is that users have pictograms that they can move around on the screen and connect to each other. Each symbol on the screen represents one of the software components in the system and/or some transformation to apply. This is the second time in the last few months that visual programming has come to mind. Last time was when I was fooling around with Scheme and realized that there seems to be a much more natural mapping for functional languages to move to visual composition. Visual programming is another of those areas that seems really simple when we talk about it, but must have some really thorny problems that have yet to get sorted. It’s an area that I don’t have very much experience with in general.
However, it’s something that’s come up a few times recently, and I have another project going on that involves graphing and diagramming functionality in general (not fronting for executable logic), so I figured I would dig around a little bit. The Visual Language Research Bibliography seems to be a great way to do that. I was interested to see that there was some work related directly to visual composition of web services. Not that it really changes anything today, but it is an interesting thought experiment along the lines of “how do I access the functions I want from my handset”. Not that I would expect users to be able to (or want to!!) draw little pictures on their phone in order to interact with data and communicate with friends. But it does seem like a solution to one would complement the other. Coming up with a way to segment services such that they could be presented on a pure visual interface while retaining enough expressive power to solve complex problems seems like it would get you a long way toward coming up with an interface to operations that would be usable from a mobile device.