by Andrew C. Oliver

Web technologies that deserve to die

opinion
Jan 31, 20143 mins
Jakarta EEJavaWeb Development

It's time to bring the HTTPSession Weberthals to extinction

In the beginning we had the Web 1.0. Each time you clicked on an item or hit Post, the request went round trip to the server, then back to the client and re-rendered. This was slow, looked nothing like a real application, and caused people to become alcoholics, ActiveX users, or โ€” worst of all โ€” Flash developers.

We were then given AJAX, which bore us Web 2.0. This allowed us to create โ€œrealโ€ Web applications that didnโ€™t require rooting our browser for the whole Internet. The purists started to develop single-page applications, and the industry wasย swarmed with young 20-something programmersย with fauxhawks.

The whole AJAXian jQuerian revolution has given usย AngularBackbones, and the younger generation is inventing new things โ€” like unit testing, debuggers, and code analyzers. While I jest, Iโ€™ve been hiring these folks for the last couple of years, in part due to customer demand and in part due to the fact that this is the only decent way to create a good-looking, responsive app that doesnโ€™t require installing things or having to commune with Satan or โ€” perish the thought โ€” Microsoft System Center Configuration Manager.

Meanwhile, oddly in parallel with the AJAX Web-2.0 revolution, a weird Neanderthal was born. Developed from the MVC or โ€œModel-2โ€ framework, along with use of the HTTPSession for sever-side state management, this strange class of frameworks made server-side applications evenย moreย stateful. Indeed, you need a few data centers to store the browser state (the state of each tiny little control on the Web page) and user state for five users. There were several incarnations of this; the first was Spring WebFlow. The second was JBoss Seam, and it was largely standardized as WebBeans.

Several attempts were made to make this stuff smell, look, or taste a bit more like a Web 2.0 application or brand it with AJAX sprinkles โ€” although when the page posts or an entire freaking state tree is transferred, the lag generally clues users into the idea that perhaps this is not a real AJAX application even if it uses the XmlHttpRequest object. This stuff attempts to solve a perceived problem of the disorder of actions causing random navigation to random places by imposing a state machine representation of your sitemap. In truth, it is a little like Gopherizing HTML to prevent disorderly linking.

Why this stuff emerged from the primordial soup, I will never know. It has made me a lot of money in scalability consulting (where I pretend that the root cause isnโ€™t the technology in order to avoid upsetting you while advising you to move everything into โ€œrequestโ€ or โ€œflashโ€ mode). Itโ€™s a path that diverged from the pendulum swing that is the evolution of the Internet, or at least the World Wide Web part of it.

It isnโ€™t Web 1.0 or Web 2.0 โ€” itโ€™s Weberthal. This stuff has been in decline for years, but you should do your part for evolution (or for your deity if you donโ€™t believe in evolution) and start helping Weberthal along to extinction.