The Prototype life, Ajax universe and JavaScript everything

I was from the very beginning of the ajax days an anti-framework guy. The XMLHttpRequest object has a pretty straightforward API, easy enough not to need any abstraction layer on top of it. I also took the X on Ajax for real, and used Ajax async calls to call RESTful services on the server side (I didn’t know they were called RESTful services back then) and process the XML returned from them in javascript, in order to update elements of the page using the DOM.

As I was exposed to more fellow Ajax developers, and also some server-side frameworks such as Rails and CakePHP, I realized everyone was using it in order to pull partial page renders from the server itself, instead of handling XML in the client side. Although it all started with that Apple Developer Connection article for me, and that already pointed me to the “right way”, I must admit that I fell in love instantly on all of a sudden being able to treat my server as a “business service server” and have the user interface on the client side.

I started looking for a way around the browser quirks and repeated JS code, and by then the most used framework was Prototype. But Prototype was all too simple and didn’t have any UI components, so it made things only a bit easier. I looked into dojo, and found something new to love.

So I grew older, and as I got older I also got lazier, and I ended up finally allowing myself to get interested in Rails and CakePHP and other agile frameworks, all of which used Prototype as their underlying JS library of choice. I started using the built-in Ajax capabilities of those frameworks, and tried my best not to cringe at the idea of pulling partial HTML from the server-side. Turns out it makes things quite simple for people used to server-side development, but still I wouldn’t use that if it wasn’t a part of the frameworks.

The Prototype experience came in to me a little late, since seemingly everybody was using it while i was still hacking dojo to get my share of client-side code up and running, and now the hype has been growing constatly over jQuery. I recall looking at it once and thinking “yeah nice, CSS selectors on JavaScript, but where are the widgets?”. Well seems I found another JS-head – Simon Willison- that thought about the same thing at first look, but decided to dive deeper than I ever did, and seems to have made the case for one to use it.

His blog article got me interested again on jQuery and I will definetly look into it for the next rich interface webapp I build. Great work there Simon, I’m just sorry to only have found it only a couple years later than when you posted it.