Going back in time for some months. Me, veteran in most things server side decides to start a new venture that will make searching for flights much easier than it is today. Looking at the technologies in my toolbox, I realize that this will not be possible. So I decide to venture into the new strange world of AJAX and JavaScript, which I previously only used for form validation.
Call me naive and an absolute beginner.
So I started doing what one should do in such a case: Make a plan and spend some serious time on research. Buy some books, spend some more time and finally my shortlist is actually short: I decide to use dojo (
http://dojotoolkit.org) for my new venture.
My primary reasons for using dojo is the really massive support for AJAX (e.g dojo.Io.queueBind, JSON, etc.) and its great build system.
As a lot of other server side developers I am also quite shocked by the lack of functionality of the default JavaScript class library. Hey, I do need stuff like dictionaries, array lists, etc. And no, I don't want to go back to stone-age and implement this all by myself.
And dojo has all that. Plus cool Gadgets which we currently don't use (as I said, in my earlier post, we are an HTML++ application. Why? Our target group feels more at home with this kind of pages). The source code is mostly documented and nicely written (as I said before, I am a beginner when it comes to JavaScript so take this with a grain of salt - however I can smell bad C# and Java). There's also an active developer community and some great newsgroups.
So, we're all happy campers, right?
No.
Why? The learning curve for dojo is steeper than some other JavaScript libraries out there (e.g. Prototype, Mochikit, ...). And the primary reason for this is the documentation (in other words: the lack of). While there are some docs here and there, it is located in different sources (e.g. wiki, mailing list, tests, site) .. not helpfull when you start.
The good thing however is that once you get over the initial shock, it actually does get better. The tests are a good source for "how-tos" and the code is actually readable. And once you get in "dojo mode", the flow actually starts...
The dojo guys are aware of these issues and working on them. So let's wait.
Executive summary: If you're not too much into hardcore programming and need a simple js effects and AJAX library, don't use dojo. If however you need to do some serious lifting and you need a ".Net framework BCL" for JavaScript, then look no further.
Favorite pet peeve: As with all things coming from the other side of the pond, localization is an issue - there's none. But because of the nice packaging system, you can actually add some code that performs localization (e.g. date names in German) without touching the original dojo sources. As I said, great stuff this packaging system.
Favorite war story: Me being naive, implemented the calls to the JSON web service that retrieves the data from the individual travel agencies via dojo.bind(). This means that dojo is going to use all 2 connections that are available to IE with the result that the browser will not react to any user clicks (e.g. in order to see some detailed info about data that has already been received). Really annoying to the user (Microsoft, please change two connection limit!). Solution was to replace dojo.bind with dojo.queueBind and now everythings works as expected. Thanks guys!
So I say dojo is great, right! Absolutely! But why do you say that you are also using ATLAS then? More on this in one of my next posts..
Cheers
Stefan