| I was a really interested in BV's work for a while, but some of the major roadblocks you quickly run into once you start thinking about how to implement his ideas are that: 1. Whenever you zoom out of the code-level, you lose granularity and thus flexibility and power. 2. In order to gain expressiveness, you can constrain the domain, but again you lose flexibility to implement what you want and how you want. 3. It's difficult to avoid losing the ability to express things in general ways whenever you switch to visual or physical representation of code. 4. A lot of the ideas you might have end up being more simply represented by code, and more easily manipulated by way of text and keyboard. 5. A lot of things end up just being superficial wrappers over code. Superficial in the sense that they only hide surface-level complexity (e.g., reducing the visual volume of large code blocks). 6. Catering interfaces to novices often hampers experts. There seem to be a lot of trade-offs. I don't know if these are laws per se, but they seem difficult to break. What interests me particularly are new ways to create general purpose programs using methods that more efficient and more intuitive, but it seems like a really difficult task bound by near-inescapable trade-offs. |