Friday, September 30, 2005

A Server of Babel

Recently I’ve caught myself thinking more and more about the proliferation of languages in enterprise Java projects. If you look at a typical J2EE project you will notice that, besides obvious Java and JSP, the project contains a huge amount of code written is many “configuration” languages: tag library descriptions, WSDL, XSL, Hibernate… All these languages are XML-based – but still, each is a language in its own, with its own syntax and semantics. It seems to me that there is a tendency here: the frameworks (platforms, technologies…) become more and more generic – and the more and more of actual logic moves from Java code to the “configuration” files. Initially, maybe, that was not a bad idea – but now it turned J2EE into a monstrosity. The source files in those languages are hard to read, they are extremely error-prone, and, since they do not require compiling, quite often the problems may go undetected until the run-time. Compare it to how Java sources are handled – and you will see the difference immediately.

Personally, I am getting tired of this “server of Babel” situation. I feel I am ready to look for some other platform, which will be simpler and more elegant than modern J2EE. And – judging by the speed at which Ruby on Rails is gaining popularity – I am not the only one who is ready to move.

Tuesday, September 20, 2005

Do people need privacy?

Recently the company I’m working in encountered a problem with one of our web sites – for some reason the cookies were rejected by the client browsers. After short investigation we found the reason: incorrectly configured P3P policy on one of our servers. The problem was quickly fixed – but somehow I keep thinking about this small incident.

The topic of online privacy is a hot one – and was a hot one for quite some time. Users of the Internet – and I’m not an exception – were worried about the data that different sites collected about them. Several utilities were created at different times to address these worries (I myself had at some time installed a program called IDCide to block tracking cookies). And I’ve read a multitude of articles in different online and offline magazines – all talking about the necessity to protect an innocent Internet user against data collection and privacy violation. It seemed like everybody wanted something to be done.

And then the issue was addressed by W3C, and a Platform for Privacy Preferences (AKA P3P) was created. Now almost all major sites and the major browsers support P3P. The sites tell you their policy on data collection and retention, and the browser is able to allow or deny certain actions based on how your preferences match the site’s profile. Terrific!

The only question is – how many people know about it? I’ve asked several of my friends and colleagues – most of them never heard about this. Somehow P3P and everything that’s related to it got past the majority of people who need it most. There is something unwholesome about the situation; it shows us that people do not need privacy and security – they just need to talk about privacy and security.

Friday, September 16, 2005

AJAX - new technology or a neat trick?

AJAX took the Web by storm and quickly became a buzzword of the day. On almost all sites that has anything to do with web-oriented development there are discussions about AJAX technology, tutorials on how to use AJAX technology, new libraries that support AJAX technology... But, after discarding all that buzz around AJAX, one can easily see that there is nothing new in this "technology". There were several ways to asynchronously call server without reloading the page long before AJAX appeared. One way was to use a hidden frame as a container for the results returned by the server - I used it 6 years ago. Another way was to utilize for the same purpose an invisible IFRAME (used 3 years ago).

Yes, yes - both of these ways are much less elegant than AJAX, and there are certain things possible with AJAX which were impossible with these old tricks (for example, retrieving some data from another site which supports REST). But still, the basic functionality was the same, and the famous example that started the AJAX craze - Google Suggest - could be easily implemented using any of these methods.

So why the old methods did not get that popularity? One reason is, of course, the timing. AJAX appeared at a very right time, and was popularized by Google itself. But there is another reason - maybe more important. It is very simple: "AJAX" is a catchy word, "technology" is a very important-sounding word. "AJAX technology" - this combination just doomed to success.