Wednesday, December 21, 2011

Why we chose Dojo for our Ajax framework : ATG


ATG made the decision to standardize on Dojo in September 2005. We have revisitedthis decision once and still believe it is the right framework for us and our customers.We looked at a lot of other Ajax toolkits, both open source and commercial. Our first goalwas to decide if any of the commercial toolkits offered significant functionality that wecouldn't get in an open source toolkit. Mostly the answer was no. This decision neededto be made because we'd have had license fees to pay if we did an OEM of a toolkit, andthere would be potential licensing issues for our customers too.In fact, most of the commercial toolkits have some serious downsides in addition to thelicensing. We found that some of them had really focused on the compression of theJavaScript at the cost of readability of the code (JackBe had this issue). We also lookedat Backbase, which was pretty nice but we didn't see anything overly compelling. Most ofthe commercial toolkits had focused on building complete interfaces in their toolkit ratherthan incremental addition. While ATG was building some entirely new applications usingAjax we also know that we would be incrementally enhancing many existing interfaces.Once we narrowed down the decision to open source only, we eliminated all open sourceprojects that had only one developer or that had very little in the way of downloads. Thisleft us with Prototype, jQuery, Dojo and DWR. In our initial review GWT and YUI hadn'tbeen released yet - and we still wouldn't have picked them. Also the TIBCO GeneralInterface toolkit didn't exist either.Here was our reasoning for each toolkit:

Prototype/Scriptaculous:
Was a very basic toolkit and seemed to be mostly focused on making fancy web pagesrather than building web apps. Prototype had a lot of good stuff for making it easier to callXMLHttpRequest and do DOM manipulation. For its target market it’s a very good tool,ATG just wasn’t in that target market.It was somewhat cryptic in its method names. It didn't really have a good client sideframework for writing reusable components. It didn't have a client side messaginginfrastructure. It's big plus was that the download was tiny (15KB at the time) and it is stillin that range. It also had (and still has) the biggest community (according to ajaxian.com).The Dojo 1.0 release should have a footprint about the same size as Prototype, that’ssomething the Dojo community has been working hard on.

jQuery
:Very similar to Prototype. jQuery was a little easier to understand but was still very basic.Again it mainly focused on making XHR and DOM manipulation a little easier. It had littlein the way of client side framework or component creation. The documentation for jQuerywas really good.

DWR
:A very good toolkit for binding server side Java code to Javascript client. It handled thetransport and conversion well. Easy to plug into ATG (the connector that's in thewhitepaper took me an hour to create as part of our evaluations). No client sideframework. No DOM manipulation toolkit. DWR is really just a server communicationtool.



Dojo
This was the only toolkit we found that had focused on an approach for creating reusable,componentized code. This is something we knew we were going to need. It also has asolid client side event model and a pub/sub messaging scheme. It had some good UIwidgets right from the start. Server communication piece was as good as jQuery andPrototype, although DWR had the edge in this category because of the server side tie in.Dojo had some nice utilities for creating requests from forms automatically.Overall Dojo seemed the most complete. Also the community around Dojo was thrivingand several other major ISVs standardized on it around the same time we did, althoughwe were one of the first.On the release of YUI and GWT we took a look at these frameworks. We were skepticalof their usefulness to us because of the closed nature of the toolkits. They are controlledby another company rather than a pure open source community effort.GWT is a nice idea for application developers that work in Java that want to create Ajaxapplications. You are completely isolated from the JavaScript and really don't need toknow much about the client side. This is both good and bad. They've added JSNI(JavaScript Native Interface) in an attempt to get around the bad, but we don't think thisis a good overall solution. Building internal applications with this toolkit may work well,but in customer facing ecommerce sites we are skeptical of how easy it would be.YUI has a really good selection of widgets. Yahoo has done a good job with this. Thetoolkit has developed quickly and has a strong following. It is still quite closed from acommunity perspective and ATG really wants a toolkit with an open active community inwhich we can participate. Yahoo isn’t really offering that. This toolkit is probably evolvingfaster than any of the others, and there is a bit of a footrace for features with Dojo, witheach adopting the better ideas of the other. We like this toolkit, but the strong tie toYahoo is difficult for us from an ISV perspective.

Dojo release
The ATG 2007.1 release uses Dojo 0.4.3. On Monday November 5th, 2007, Dojo 1.0 wasreleased. ATG plans on supporting this release in a future version of ATG. There was amajor revision of the Dojo framework between 0.4.3 and 0.9 that requires ATG to reworkmany of our custom widgets. ATG also knew the plans for Dojo 1.0 and decided not togo through the upgrade effort until Dojo 1.0 was released and stable. This work will bescheduled into our standard release schedule. Customers will be able to use Dojo 1.0 intheir applications and web sites

No comments:

Popular Posts