Peter Coad had a book out a few years back on UML modeling in color (Java Modeling in Color with UML, Prentice Hall PTR, 1999), which I thought had quite a lot of merit to it. He basically had a color-code scheme for different archetypes of classes. I thought that was an interesting approach.
Looking at a model real quickly, you could easily discern yet another facet of things that wasn’t shown by the class diagram box style or the font. For the most part, that really didn’t seem to take off very well. It didn’t really capture the imagination of the population. I think that’s a shame. We’re back to syntax highlighting for convenience in IDEs (Integrated Development Environments), but it’s not part of the language proper. You can’t make a variable static by making it red or what have you, and it occurs to me that we’re really missing an opportunity for much richer expression there.
So you couple that with the idea that the folks just entering the workplace now are much more imbued with this idea of gaming and first-person shooters and virtual reality and all these sorts of things that us fuddy-duddies are far less comfortable with. Even if we do it, it’s not bred into our DNA. And the groups that are growing up with that now, I think they will end up making a large impact on the very notion of what we consider a computer program to be.
So I would say -- I don’t know about 10 years from now but maybe 20 years from now, they’ll look back on these syntax-colored IDEs with curly braces in them and snicker the same way we look back at paper tape
rolls and say, “My goodness. How primitive! Those poor people. How on earth did they survive?”
Andy: I don’t know the exact form it would take, but I can well see it looking more like Second Life and less like the Gutenberg print.
Ed: One pragmatic approach that has emerged recently, in part due to new ideas entering the workforce, but also due to advances in processor hardware, is the use of desktop virtualization products such as VMware and Parallels. Do you see virtualization playing a larger role in future software development practice?