Bruce Eckel recently reviewed Bruce Tate's book, Beyond Java, and inadvertantly set off a firestorm. In Eckel's stream-of-consciousness review, he chides Tate (but actually doesn't, but really he does, no wait-a-second, nevermind) for sloppy thinking, and then lets loose a few howlers of his own.
Of course, because a few pet languages were slammed, this post has launched an advocacy debate all over the blogosphere. (You know where to look; I'm not going to provide any links or fan the flames.) This kind of thing that was fun in 1997 on comp.lang.perl or some mailing list somewhere. But then, somehow, most of us got tired of it all, grew up, and moved on.
Advocacy debates and their associated flamewars don't contribute anything to the sum total of human experience. If they do, the contribution is slightly less than lighting a fart in an empty room.
So, now comes the friendly periodic reminder about internet debating:
Now, if you actually go back to read what Eckel actually said (and ignore the flames and flamebait), I'd highlight your attention to this passage:
My own experience in web frameworks was with Zope. In an interesting parallel with EJB3, Zope is now on version 3 which is a from-the-ground-up redesign, and everything I've seen of it indicates that, like EJB3, it represents a great deal of rethinking of the problem. I've been bumping up against the problem of "but all I want to do is connect a database to the web" in Zope2 for several years now. Oh, it's definitely something you can do, but unfortunately it's past the knee of the "Z-shaped learning curve," and is only trivial if you live and breathe Zope every day. Don't get me wrong; Zope is an excellent system and incredibly powerful, and Zope3 may be much easier, but I'm out of steam. I have realized that on my site, I really just want to do a collection of simple things, and I don't want to relearn Zope every time I want to accomplish something. So -- sorry, Jim (Fulton, not Kirk) -- I'm going to find something drop-dead simple to solve my drop-dead simple problems.
Yep. That's right. We've been building abstractions (frameworks, app servers, etc.) to build web apps for over a decade, and we still haven't got it right. Finding the right abstractions and architectures to build web applications (or even classify categories of web applications) is a deceptively difficult problem, and we're still feeling our way out of the dark.
*: By extension, blogs, IRC, etc.