HTML 5, jQuery, REST: is it client server redux?

May 3, 2009

Don’t get me wrong.  I love jQuery.  The elegant language feels reminiscent of LISP, APL and other great languages of days long gone. HTML 5 and the canvas hackery makes me giddy.  Just feast your eyes on Jacob Seidelin’s beautiful hack where he ported a chunk of Milkdrop to JavaScript and Canvas. 

Less we fret that Canvas will replace Flash, ActionScript 3.0 finally has direct access to the GPU. Jesse Freeman and I shared lunch recently, where he showed me some slick tricks with augmented reality, which treat the webcam as a 3D input device. 3D will soon proliferate in Flash, just as HTML starts eating away at the 2D low-end Flash has dominated for a decade.

My head has been swirling with this onslaught of powerful, client-side tools. As you see on this blog, I’ve also been hacking with them on the commute to and from New York.

Then it hit me.

This past Friday I was pouring through the details of a sharding project at work. Sharding is hard work. You have to move highly centralized data and services to a distributed model, both in data and functionality… while keeping a current site alive. The engineers walked me through details of how web requests were routed, dispatched, and handled. Slowly a picture started to emerge.

These engineers were moving nearly all of the display logic, and a lot of the business logic, to the edge. Gone were Smarty templates and Ruby on Rails views. In their place they began to use Google’s EJS — embedded JavaScript. The browser was now assembling pages, downloading templates from a CDN, pulling JSON data from a bank of highly scalable data services. The backend looked like a giant, screamingly fast JSON service farm.

Modal windows, cart updates, product views, pagination. It was all happening at the edge. Templates were no longer produced live. Instead, they were being produced in a measured cadence, published to the CDN from a content management system.

Is the future of the web replaying history, what we’ve seen so often in computer science? Is the highly decentralized nature of the Web swinging back, closer to client server, with fat clients and backend data, but now loosely coupled with RESTful interfaces?

2 Responses to “HTML 5, jQuery, REST: is it client server redux?”

  1. Putting on my user hat: whatever works.

    In the olden daze, desktop apps were too static: bi-annual updates, likely at a cost. When can I go purchase the latest-hopefully-less-buggy version of my critical business app?

    In the modern era, server-side apps are too dynamic: tri-daily updates (albeit free). Did this critical business app I used yesterday change overnight without notice?

    Fat clients can work. Fat servers can work. They just need to work.

    (I must admit the geeky computer science musings are attractive)

  2. You’re right. As long as it works. :-)

    I find it fascinating as we watch each new generation of software developers enter the workforce. Techniques that were once the rage 30 years ago seem to have an odd way of making it back into the avant garde. VM? Try 1970. Now its on commodity hardware, over the Internet, and called Cloud. Its charged to a credit card, versus invoiced through purchasing and installed over months.

    Love that.

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes