I am excited that OpenAjax Alliance is officially open now. Over the last months months, we have worked very hard and have made some incredible progress, depsite the heterogeneous nature of many different members representing different viewpoints. One person that definitely deserves credit for getting us to where we are today is Jon Ferraiolo - In fact, I could not think of  a second person better than Jon in help driving alliance forward, and I congrat David Boloker(IBM)  for making such an excellent hire!

Please check out our website at http://www.openajax.com.

What we achieved in the last few months - with lots of conference calls, emails and late night work from many different people:

1. Marketing: we designed the logo for the organization. Dylan Schiemann (Dojo Toolkit) played an important role here. We also finished a white paper trying to clarify the Ajax landscape and terminology from a technology point of view. Chris Erickson (ICESoft) did a good job taking a first stab at it, I was honored to be able to contribute some thoughts and graphics from some of my previous work and Jon did a brilliant job of putting many different things together. The white paper is here. We outlined two different architectures: client side transformation and server side transformation, different implementation options such as single DOM and dual DOM and two different programming models (programmatic vs declarative). By the way, Apache XAP is a client side architecture, uses a dual DOM approach and advocates a declarative programming model (though there is a programmatic API). I personally believe this is the best option overal speaking (server independence, higher server scalability, an XML DOM interface on the client side enable easier and simplier way of client side state manipulation in a browser independent fashion, etc). What do you think of the white paper? What do you think of the Apache XAP approach?

One of the things that I personally do not agree with the white paper is the term "server-side Ajax engine". In my oppinion, Ajax engine is about client side stuff and Ajax itself is a client side beast. Calling server side code as an "Ajax engine" just confuses the market and terminology. Some other people have stronger oppinions on this issue and believe it is OK to have a "server-side Ajax engine", which I did not feel worthwhile arguing further. What do you think on this issue?

2. Interoperabilty and declarative markup: Historically, the usage of Ajax (JavaScript and DHTML) was in a much smaller scale that JavaScript code and Ajax toolkits rarely have to deal with each other in the same page. However, with the rise of Web 2.0, Ajax is playing an increasingly important role for enterprise application development. It is highly likely and beneficial that the same application may need to use several Ajax toolkits or code written by many different developers, such as mashups. In this new context, the question of whether two different pieces of Ajax code can “peacefully” co-exist becomes a really issue.

There are over 180 Ajax toolkits today. The reality is that a lot of them do not have consideration for “compatibility” or “interoperability”. For example, a lot of toolkits as well as a lot of Ajax developers overload the “onload” event handler for the HTML page to handle initialization without considering that the “onload” event may be needed by another Ajax toolkit or a different developer. So this is a real problem and we must figure out ways to solve it in order for Ajax to be really adopted in enterprises.

What is the solution? Corporations like Google can play a role for sure, given their big influence in general. But I don’t think it is sufficient. Google has done a good job in some of the code they produced, but it didn’t prevent other Ajax toolkits and developers breaking the “compatibility”.
 
OpenAjax Alliance is formed to address such kind of issues for the industry. The result will include guidelines, OpenAjax compliance requirements, as well as code that we encourage people to use that would give them interoperability. OpenAjax Alliance itself includes many of the leading Ajax toolkits that will support OpenAjax interoperability. Many members made significant contribution to solving this challenge.

One of the milestones is OpenAjax Hub, a lightweight Javascript library that deals with the interoperability issue. Jon (IBM), James Margaris (Nexaweb), Alex Russel (Dojo) etc. made a lot of contribution here, and a lot of other people actively participated and contributed (such as David Frankel (SAP) etc).  Though the initial code base is small (don't you think it is great to have small footprint code?), it is an important step that solves some real problems as well as demonstrated that the members can work well together to produce real results.

Tony Baer's latest blog "Herding Cats" presented an interesting viewpoint on the potentia challenges that faces interoperability and OpenAjax Alliance itself. I must admit that Tony made some exellent points here. From the perspective of interoperatibility, we have yet to think of the impact of mashups. Further, from the perspective of OpenAjax Alliance, some of the things that Tony pointed out "developing standards looks akin to herding cats" are definitely the things that we have to pay attention to.

I look forward to the October face-to-face meeting and really bring Ajax to the next step...