Turns out the author had the focus of the article all backwards (at least I’m sure the Sun engineers would think so). The Ajax example was simply that. Sun’s Project Flair was implementing something far far more complex.
For those unfamiliar, and I can thank Myles Byrne for introducing me to these concepts at the first RailsCamp , this means that the Lively Kernel environment can be extended and developed while programming inside the that same environment - no reboots or compiling needed. If that sounds esoteric, it is, extremely so; but it’s also as powerful as it is difficult. Which is why those CompSci geeks are drooling.
Meanwhile, my inner standardista is screaming.
Sun Labs Lively Kernel .
That quote resides in the Motivation section of the Lively Kernel description. It evens sounds quite reasonable. Who wouldn’t want to cut down on the number of things you have to learn in order to be good at this thing we do? Being a skillful generalist is hard .
Not everybody can do what we do, and I’m not dissing these guys because I know they can program rings around me, but being hot programmers doesn’t make them web developers. The reason the web works is because of that layered approach. Because of those disparate technologies that can be drawn together to make something strong, elegant and stable.
Simplification is good. I’d love some more simplicity in my day-to-day work! But bringing everything down to a single uniform level is pushing that too far. It’s called putting all your eggs in one basket. Or even worse, it’s called a monoculture. If you want some intense thought cud for the next weeks or months, go and read Anil Dash on Monoculture and Web 2.0 .
On that note, I’ll leave with a quote that sums up how at least some people at Sun are thinking about the web and web technologies right now:
AJAX sort of deals with all of the old way of doing things. It makes it simpler, which is great, but underneath it’s still all this junky HTML, Document Object Model, CSS, all that stuff, where 30 years ago, we knew how to do that stuff cleanly with a dynamic programming language and a simple graphics model