You’ve said that simplicity and power are evil twin brothers. Can you elaborate?
James Gosling: Often systems that are really powerful tend to get complicated. Take something like the Java EE spec. It’s got all this stuff about transactions and persistence and those are really, really powerful. But in the early days of Java, we didn’t have any of that.
The system was really pretty simple, and people could sit down and they could understand it pretty easily. If you restrict yourself to Java the language and the basic APIs, it still is very simple. But as soon as you start using some of these more powerful subsystems like Swing and Java EE and the rest of them, you get the sort of feeling that you’re drowning in stuff. Look at the OpenGL libraries, it’s really powerful the kind of stuff you can do with OpenGL. But oh my God, it sure isn’t simple.
Especially in OpenGL, you need a strong sense of how idealized graphics hardware works ...