In between washing the salt spray from my glasses and fretting about whether the surf would succeed in taking over the small allotment of sand that I am paying through the nose to lounge atop in a rather finicky contraption of white plastic whose sole purpose in life is to (rather unsuccessfully) place some distance between my towel and the aforesaid surf, I had a sort of epiphany regarding Prototype.
Bugs Under The Microscope
Being somewhat of a pragmatist, my approach at catching up on Web 2.0 has so far largely consisted of puttering about the newest, trendiest sites and trying to understand why I did not feel like part of their target audience, which is apparently spilling out as much teenage angst as possible in the form of badly lit camera-phone videos, posting impossibly legal MP3 files of their favorite bands, letting everyone in the planet know what they are doing right now (again, via badly lit camera-phone imagery) or link to someone else's "self-generated content" and subsequently generate swarms of meaningless commentary that closely rival the average post-moderation score of a randomly picked Slashdot or digg comment.
All of which, of course, to the tune of gazillions of web advertising "impressions", which is where the real money is.
Regardless of the finantial/business/bubble aspects of that pursuit (which I'm keeping to myself, since I like to form my own, preferably unbiased opinion of the companies involved rather than add momentum to the Hype cycle) so far I have arrived at three separate and yet not totally disconnected conclusions:
- Web 2.0 is a usability nightmare (sites are designed to be "cool", have "exciting" interactive features or mimic desktop UIs, all of which are inherently wrong - and dumb - approaches).
- Content tends to be a lot harder to find or link to (how do you index or link to the third item on a collapsible section of a page that is completely assembled on the client side by the browser?).
You see, I hate the language with a passion heretofore reserved to those British vacationers who make a point of sitting around popping their beer cans while their immense wives shout at the kids not to eat the sand, and "George why don't you keep an eye on them for chrissakes?" and who have, repeatedly and over the course of several years, managed to turn the Algarve into what is probably the southernmost English-speaking territory in Europe short of Gibraltar - this judging from the vast numbers of small restaurants with names starting with "Ye Olde" and advertising eggs, bacon and baked beans.
Barbarians At The Gate
These, despite their foibles, shared the sole redeeming aspect of being somewhat outside Microsoft's peculiar way to integrating them in their browser, and were therefore assumed to be completely cross-platform, stable, and good targets for development, a notion that Sun and Macromedia soon helped dispel by churning out multiple updates over the past few years (my gripes about Sun's management of the evolution of Java into successively incompatible and fragmented sub-platforms are well-known and the stuff of legends told around the camp fire by disgruntled IT folk that shared - or rather, hogged - CPU time with me, but I won't repeat them here).
The Whys And Heretofores
And the answer is, by and large, because no two programmers code alike. Unless they're identical twins kidnapped by UFOs and telepathically linked to an extent where they can play Mozart at double-time synchronously in separate rooms, or something.
But worse than that, because all programmers would love to be virtuosos in some fashion, and therefore try to stamp their creations with some sort of defining theme. In Dojo, the emphasis is on keeping the namespace clean and on delivering complete, functional components, in moo.fx it's on size, and in Prototype... well, that's the reason for my little epiphany.
Truth be told, however, that Dojo's documentation is brilliant at detailing every little aspect of its API, but just as useless at explaining how to chain them together. In fact, until they started drafting the book online, it all reminded me of the MSDN library and my many quests to find meaning in its arid wasteland of function calls and punctiliously defined parameters.
One of Prototype's saving graces (or turn-offs, depending on your viewpoint) is its association with the rampaging hordes of Ruby on Rails, that have, like the proverbial million monkeys, made it almost trivial to use (or overuse), turning that off-yellow color so characteristic of Rails div updates into the new black.
Sadly, that happy, all-encompassing mind-state (from which deeper truths would likely emerge in due time) did not withstand the horrified shriek that issued from the neighboring lounge chair as a bee alighted from an empty can of lager and tried, in its addled state, to make friends with what it perceived as a vast, rosy (and likely peaceful) mammal.
Fortunately for the little creature the surf finally reached our row of lounge chairs, causing a not unwelcome diversion (and, in time, our neighbors' most welcome retreat).