There's hardly ever been a term in software development which has been picked up, digested and (ab)used as fast as AJAX (Asynchronous JavaScript and XML). Thirteen month after the acronym was coined by
Jesse James Garrett
there are more than 20 English books listed on the topic, many of them already in print.

My personal dive into the AJAX sea took place early this year when I tried to come up with a simple demo application to show the practices and pitfalls of Test-Driven Development with SAP's Netweaver technology. My colleague Marco and I decided to use two technologies to show the universal applicability of our approach: WebDynpro (the SAP way to generate web user interfaces) and plain JSPs.

It didn't take me long to realize that WebDynpro was going to be a real pain in my behind, so I kept morale up by adding a couple of AJAX features (inline editing, drag&drop, no page rerendering etc.) to the JSP variant. Although I had done some reading on AJAX implementation techniques and patterns, I ended up with a solution of almost 500 lines unreadable JavaScript code, which - to make things worse - only worked with my specific version of Firefox.

So I decided to do it right for once. My goal was to implement the same thing over again, but additionally I intended

In case you wonder, these are the exact goals of many of the 500+ existing AJAX frameworks.

Being the thorough guy that I am once in a while I started by purchasing (and reading) a couple of books:

Additionally I subscribed to Ajaxian which IMO is a very convenient place if you want to learn latest news about Ajax technologies, libraries and applications.

In the stories to come I'll probably ramble about lots of details like client-server communication models, browser (in-)compatibilities, JavaScript effects, testing, templates and a few more. For today I send you to bed with the most striking lessons I learned in the last two months:

The produce that I accomplished during the last two months (working mostly in the evening and on weekends) is a little framework called JayJax. There's no release yet, but there will be one soon. And I will present you all my lame excuses why I just couldn't resist writing yet another one...

Johannes