Time for some mental Spring cleaning. This is the first of several reviews I plan to do on interesting current research. First up is Alan Kay’s Viewpoints Research Institute. As the title states, he wants to reinvent programming. Again. The guiding goal of the project is to recreate the “personal computing experience” – from OS to apps – using dramatically fewer lines of code. They are looking for a “Moore’s Law” leap in software expressiveness of 3 or 4 orders of magnitude.
Their work so far is mostly a series of DSL experiments demonstrating impressively small line counts, for example TCP/IP in 200 lines. The basis for these DSL’s is the OMeta parsing language. It is built on top of Cola, which is a sort of cross between Scheme and Smalltalk. It is small and elegant like Scheme, and has message-passing semantics, and meta-messages for dynamically adaptable semantics. OMeta is a generalization of Parsing Expression Grammars to work over Cola datatypes, and with semantic actions written in Cola. Cola’s dynamic semantics allow OMeta grammars to often function as interpreters.
This is all very cute, but as they freely admit, they haven’t yet figured out how to pull these little DSL’s together to build large systems. What is needed, I think, is some new kind of modularity. There are some speculations about modularity in their progress report. Modules might be like “particles in a field”. Or modules might be like biological cells, that “notice” their environment and know how to respond. It is said that modules should carry a model of their environment. I look forward to seeing what they come up with on this central problem.
Overall, I have to say that I am full of admiration for Alan Kay and all the VPRI people. They are trying to do the right thing. They have a 5-year grant from the NSF, so they will get the chance to do something. This is what Computer Science should be. But isn’t. The sad fact is that their grant was gotten outside the peer-review process. It helps to have a Turing award. This research would never be funded in the normal manner. It simply doesn’t qualify as Computer Science by today’s standards. All the worse for Computer Science.