Tuesday, August 11, 2009 11:01 PM
So today I poked the proverbial sleeping bear that is the web-dev community by making this statement on Twitter:
I'm a day in to using jquery and I'm already questioning why having an abstraction over a script-kiddie language is a good idea.
This of course resulted in a flood of tweets in response asking if I was joking, suggesting that I fill my purse for the ensuing fight, and Caleb Jenkins yelling “One Flag”.
I think I convinced people to put down the pitchforks and douse the torches (us Canadians are good at diplomacy), and I did apologize about the script-kiddie thing, but I did want to comment on where the statement came from. My thoughts on this are nothing new though; I posted a similar piece in April 2008.
We’ve had ASP.NET for 7 years now, and in that time we’ve seen the web become the #1 development platform. Sure, Windows is still around and desktop applications haven’t gone away. But an application doesn’t need to be hosted in a browser to be a web-app. Consider cloud based computing technologies from Microsoft and Amazon. Consider that information is now being consumed from public API’s for larger services (Twitter, Facebook, etc.). Consider that technologies have evolved and now we have rich application platforms like Silverlight and Air at our disposal.
And yet…with all this change, with all this advancement, we’re *still* trying to figure out how to efficiently output HTML to the browser. We’re *still* trying to write abstractions for client side technologies to make it easier to use. We’re *still* no closer to having browsers hold to the same standards while providing custom features that don’t impact rendering of web pages.
So as I waded in to using jQuery for the first time, I realized that what I had in front of me was yet another abstraction over top of a native technology that can be ugly and unruly at the best of times. I find it interesting that so many decried webforms as a “leaky abstraction” in how it handled outputting HTML, many favouring MVC based frameworks instead. Yet for jQuery, its the darling of the web world. I know there’s differences in the implementations of both, but they’re both abstractions.
I guess I’m starting to wonder: when will we as an industry stop re-inventing or abstracting existing tools and platforms and start really innovating towards new development platforms, frameworks, etc. When will we start striving for solutions to the common problems we face every day instead of just creating more band aid, evolutionary advances?
I worked on a web app recently…Mono Rail with NVelocity as the view engine and jQuery as the client-side library. The task I was assigned would have taken me no time in webforms, a solid technology that I’m familiar with. But instead I’m using these alternate technologies to…what…render HTML onto a page for me?
The web is so stale…the web has become a red ocean of copy-cat sites and redundancy. The web as an application platform has stalled somewhat, maybe not in usage, but in originality and advancement.
I’m still trying to figure out what the answer to all this is, what some concrete goals are that we as a developer community can work towards, but I will say this: I’m getting tired of having to learn new platforms and frameworks that just spit out HTML using a different engine. It’s been done before…how about we try something new?
D