Saturday, August 1, 2009

The future of web development

P.S. (Prescript): Its been a long time since I've posted. For those who thought I was gone for good, I'm sorry to disappoint you :P. While the last 2 posts were fun its now time to move to towards a different direction now, a more serious one. I don't expect even half the 23 comments i got last time, but this is something that I just have to do. I hereby declare that I have written this post in full consciousness and the best of mental states and there is no reason for anyone to doubt otherwise. :)

The World Wide Web has come a long way from its early days of static html web pages. E-mails, chats, skype calls, facebook, twitter, blogs etc. have made the web into an extension of our social life and for many people much more than that. For an organization a presence on the web today is not merely a luxury, but a necessity. Infact entire retail stores of organizations exist completely on the web. And hence as new ventures are started one of the very first requirements is a comprehensive and sleek website, coupled with all the latest in-things and a complete Content Management System.

From a developers perspective as the focus now shifts on compliance with the W3C standards, maintainability and Search engine optimization. Building mere functionality isn't sufficient, codes have to be written in a clean and structured format. Gone are the days when entires sites were constructed squashing in PHP and HTML codes into single files. As there is growing trend of using specialized designers and specialized developers here is a greater shift towards MVC architectures. MVC (Model-View-Controller) architectures separate the Database, Data Logic and Processing and the Presentation layer hence making the integration of designs and backend coming from separate sources possible and also ensure easy reuse and maintenance of the code. While Struts is an accepted industry standard today its complexity is enough to draw away most developers. Instead more developers are preferring Ruby on Rails, Django, CakePHP, TurboGrears, Symphony overs Java based frameworks as these are much simpler to use. An added advantage in frameworks like Django and Ruby on Rails is the automatic CRUD (Create read update delete) part which can be used to make CMS interfaces much more easily. While the support for these technologies isn't great yet, they are the ones that the future web will run on. As a matter of fact majority of the existing websites are made in a technology that is light years behind what exists today.

Another development are CMS systems like Joomla, Wordpress, Drupal, ZenCart etc. that provide a quick and easy way to set up complex sites by using the army of standard built in features that they provide. However the more standard built in features the lesser the scope for customization, and in today's million-website-web it isn't the standard website that stands out. Websites need to be special to make an impact. And so while Joomla may work brilliantly for one website, Wordpress may work perfectly for a blog, they don't offer a comprehensive or permanent solution yet. Quick and easy, yes, but at a price called compromise, and compromise isn't a word that an organization that lives on its website is ready to hear.

So as we move towards a bigger Web its hard to imagine a Joomla that will offer total control (no doubt Joomla will continue to progress, but so will the web :-) ). It will nevertheless provide a quick and easy fix for the ones who don't care about pixel perfection. But for the purists the future lies in Django, Ruby on Rails and their tribe. There is still a huge scope for further development and additions in them before they could be called perfect. Inline PHP on the other hand should finally be laid to rest. jQuery, Mootools and newer javascript libraries will continue to dominate on the client side, and Ajax should soon gain a foothold and get incorporated into the MVC architectures. MVC's are here to stay. Watch out!!