[E-Lang] E FAQ
Marc Stiegler
marcs@skyhunter.com
Thu, 11 Oct 2001 09:18:26 -0700
> I don't know whether this ("went out of their way") was intended as a
> metaphor, but I think it is a bad description of what happened. To the
> best of my knowledge and recollection, Gosling did an amazing job of
> designing and building a language, an interpreter (the JVM) and a
> verifier that implemented capability security rules without having an
> articulation that that was what he was doing. He unfortunately couldn't
> do everything himself, and so he ended up farming out the implementation
> of the libraries to others. Since he hadn't articulated the design
> principles, the results was a butchering of the library. It was a
> combination of good and bad luck, but blind luck, nonetheless.
Blind luck continues today...or rather, split personality skill continues to
today, because both the best and the worst parts of Java seem too brilliant
to be accidents. As I work through AWT and Swing to build CapWT, I run into
parts of the system that are surprisingly well designed from a capability
perspective (drag/drop) and parts that are comically awful (TextPane
keymaps). It's as if JavaSoft had 2 developers, and one was implementing as
cleverly as he could to enable capability security, while the other was
implementing as cleverly as he could to riddle the system with security
holes. The sabotaging developer ensures, as a by-product, that java
developers have a maximal opportunity to shoot themselves in the foot, which
is what the TextPane keymaps seem to have as a design principle: it is easy
to edit the kernel keymap (by accident, if you don't know what's going on)
so that no text field in any window operated by the jvm can interpret the
keyboard correctly any more (I know, because I did this to myself :-).
-marcs