07 June 2010

TIOBE index

I have came across the TIOBE index recently and was intrigued by the results it showed.

"TIOBE monitors currently 339 different industrial projects all over the world for various multinationals (see our reference list for more details). This is more than 142 Million lines of source code per day."

There is also an interesting chart on the trend of usage of different programming languages :

I will leave the conclusions to you, although I personally don't like some of the trends this research shows.

Thoughts and rants on AJAX

Inspired, in some part, from Guillaume Laurent’s tech blog and How and Why AJAX, Not Java, Became the Favored Technology for Rich Internet Applications.

Have you not had this familiar feeling that what you are doing is not really natural in an architectural sense? If you have ever developed an AJAX web application than you sure have.

AJAX was really very interesting when it was still a hype. As with all other IT hypes it had lots of people talking about it, presenting it in conferences, writing articles and extending frameworks. None of them actually explained the approach from another view than that of the user.

Yes - it is a shiny gadget and makes most of the static / conventional dynamic web site look old and feeble, a thing of the past.

Yes - it mimics the way integrated desktop applications work in many ways.

Yes - it actually does give more options to make a better, more user-friendly interface.

Unfortunately, as it normally happens, people seem to have gotten the wrong idea. RIA is the future. But AJAX is not RIA. AJAX is just a hack we use in the path of transforming the web from a basic request/response interface to a rich, full fledged application.

AJAX is twisting your arms every time you want to do something bolder. AJAX is limited in so many ways that one could easily say we have seen all from AJAX even though it is a relatively new approach.

Of course this is highly theoretical. Should the end-user's computer serve as something more than a terminal for the services offered by the server? Should it do small computations such as field verifications, field recalculation, sorting of table information ...

I personally believe the answer is somewhere in the middle. My personal experience has shown that neither approaches work best.

If there is too much happening on the user computer the application becomes slow, heavy and is heavily dependent on the user's hardware and setup. This is a huge maintenance risk, such problems are very very hard to identify and compatibility is *always* an issue.

On the other side we can't really do everything on the server, even if we have the best platform / hardware. Querying the server for a simple number verification is plain old silly. Do you want to depend on an internet connection for such a simple thing? And what if the user is typing really fast into several fields? This is an enormous amount of server calls for something as prosaic as a string inspection.

Perhaps the future has something much better to offer. I already had some experience with the Flex framework and I think this is a good direction to follow. But for now we must accept and understand the limitations of AJAX and not try to use it as a medicine for each and every illness.