Monday, August 20th, 2007

Dojo 0.9 Final Version Released

Category: Announcements, Dojo, JavaScript, Library

Congrats to the entire Dojo team on shipping Dojo 0.9. In short, you can now expect great things from this revamp, including a tight, fast core, a unified good looking set of widgets, and an extensible space for all things Dojo.

Now that this new base is out there, the team can continue to build on it, and take it to the next level. Bye bye 0.4, hello 0.9.

Alex says it best:

After a complete re-think about the purpose and value of Dojo, and after
months of grueling ground-up work on the part of the entire Dojo team,
I’m happy, proud, and excited to announce that Dojo 0.9.0 is available and AOL is already hosting 0.9 in their CDN.

For those porting Dojo applications from previous version of the
toolkit, you can refer to the Porting Guide for help on where APIs landed in the shuffle

In may cases, you’ll need less code overall to get the same thing done
(or done better), and Bill Keese (Dijit Project Lead) has put together
a great overview of what’s new and awesome.

The quick rundown of 0.9 features:

Dijit

  • unified look and feel for all widgets
  • ambitious a11y and i18n features in every Dijit widget
  • a mature CSS-driven theme system with multiple, high-quality themes
  • huge improvements in system performance
  • data-bound widgets
  • Declarations for lightweight widget writing
  • a new page parser that allows instances of any class, not just widgets
  • no magic

Core

  • reduced API surface area (easier to remember and use)
  • dojo.query() always available, returns real arrays
  • from-scratch high-performance DnD system
  • Base (dojo.js) is 25K on the wire (gzipped)
  • dojo.data APIs finalized
  • new build system
  • new test harness for both CLI and browser use
  • dojo.behavior now marked stable and based on dojo.query
  • excellent animation APIs with Color animations in Base (always available)
  • all the features you’ve come to count on from Dojo (RPC, JSON-P, JSON, i18n, formatting utilities, etc.)

DojoX

  • high quality implementations of previously experimental features: gfx (portable 2D drawing), data wires, offline, storage, cometd, etc.
  • dojox.gfx now includes Sliverlight support
  • many more features and improvements than there’s room for here.

Posted by Dion Almaer at 1:57 pm
25 Comments

+++--
3.9 rating from 76 votes

25 Comments »

Comments feed TrackBack URI

Can’t reall find much info on Dojo. The only site I found is http://dojotoolkit.org/. Most of the demos on the site are not finished and the pages are almost blank. Nearest I can figure its some kind of visual widget library but I am still unsure as to whait it does because of the lack of examples / docs.

Does anyone have more info on this?

Comment by Matthew — August 20, 2007

I hit the same wall a while back. Dojo might be cool, but its site is the worst. Prototype wins that hands down… every bit of the API is covered, cross linked and given an example. Everyone should imitate that example.

Comment by Jon Hartmann — August 20, 2007

Give the documentation some time to catch up guys, Prototype (and every other major framework for that matter) didn’t have much of a site nor documentation for a *very* long time. Grats to the Dojo team on their release.

Comment by Andy Kant — August 20, 2007

Agreed, Dojo is being held back by the lack of good documentation out there. Prototype docs are a good example of how it ould be done.

Comment by Rory — August 20, 2007

The Moo docs are great – and have been from day 1.

Comment by Karl — August 20, 2007

Ok, let’s be honest here. There are many frameworks, and competition is fierce. You go the Dojo website (which is a basic Drupal theme), and there’s a fisheye demo that’s pretty nice and an email client that can’t compete with basic Ext. Perhaps this libraries is very good, but the presentation is not. You need people on the project that write documentation, update your website, create compelling and convincing demos etc. That’s as much a part of delivering software as the software itself.

So my advice for 1.0: before you release make sure you have a fresh website with some rock solid demos.

Comment by Mike — August 20, 2007

Mike,
You are completely right, and aside from documentation, from the Dojo side of things, I would have to say that our biggest dilemma is the fact that 99% of the code contributors are intensely focused on coding, and well everything else is maintained by those same people (in the free time they arent devoting to programming they devote to site maintenance/documentation/systems operations/etc…) As you can imagine, none of us really have a lot of “free time” after that. ;) Even the website is maintained by a small group (2-3 people) that work around their free time (when not working on Dojo itself) to work on fixing things in Drupal and what not to improve on the website.

Lack of demos is very much an outspoken thing on the website, and a very brief explanation for it (whether anyone cares or not) is that the demoEngine that was developed for the 0.3.x+ branch of Dojo was found to be extremely klunky and painful to maintain, so it was dropped in favor of a new demo system which from what I’ve gather is turning into a demo/theme tester. We do however still maintain a test case that covers all the features of a module just like before, however now they are kept in seperate folders (not 1 huge test directoy for the entire Dojo project).

As for documentation, 0.9’s big push was to include inline commenting so our custom API utility can extract the information and make a nice commentable API similiar to the PHP.net communities. People have been doing extremely well on this, and in the background we have a much larger “book team” that has been pushing pages and pages of documentation/examples into the online Dojo Book for the 0.9 release. It is leaps and bounds better than the original 0.4 one, if you overlook the mistakes that were recently introduced to it by major API changes days before the 0.9 release… (these are being fixed in the book as quickly as possible).

For the person up top that asked about what is Dojo, there are several very informative pages found in the first few pages of the Dojo 0.9 Book (found here: http://dojotoolkit.org/book/dojo-book-0-9/introduction )

-Karl Tiedt

Comment by Karl Tiedt — August 20, 2007

i noticed that samples now block browsers (IE and FF) for 10-20 seconds on my pc (p4 dual core) on loading, while CPU is still almost idle, browser don’t respond. I checked with firebug and noticed that dojo.js takes ~20seconds to load and initialize. What’s the problem with new version?

Comment by anonymous — August 21, 2007

Let’s hope this release is the last one because Dojo sucks.

Karl is asking: “What’s the problem with new version?”

All its 8+MB of minified and compressed sources suck.

Dojo suffer from the same defect as the Java framework that inspired it: it is bloated with useless complications developed on simplistic ideas or plain stupidly gross mistake. Along the lines of “Why make it small, simple and fast when you can make it big, complicated and slow?”.

Comment by Laurent Szyster — August 21, 2007

@laurent: While we are all entitled to our opinions, I feel a couple of your comments are simply uninformed: “karl didn’t ask that.” the anonymous person below Karl’s post (follow the cute little dialog box arrows) did. and: The only part of that 8meg download that has been “minified” is the ‘core’ dojo.js (from 223k to 50k, ~26k w/ gzip). It includes (without using any of the other 7.7 megs) xhr methods, event connection, dom manipulation, animations, the package system and a host of other “compressed” commonly used methods. the 8megs includes the ‘DojoX project’, a largely experimental set of packages, which was not part of the initial plan, totaling about 30meg of uncompressed code (dojo project is ~8.5meg, dijit ~16meg, uncompressed). Without DojoX in that archive, the download is 1.1megs … perhaps they should address that? DojoX has a lot of cool stuff though: dojo offline, sql, dojo.gfx (svg/vml/silverlight), and a host of other widgets and projects.

Also worth noting: you don’t actually have do download any of it to use Dojo because of the AOL CDN (including the DojoX snapshop as of 8-20). Just call in the minified dojo.js from the CDN (remember, only 26k from AOL) and give it a run, preferably _before_ spreading more FUD. I am led to believe you didn’t download and look. The “minified” comment gave you away.

@all, @mike: with regard to documentation: Yes, it is an issue. This 0.9release took tons of work to get together, 0.9beta just a few weeks ago, major house-cleaning on the part of the developers. The roadmap provided for dojo _promises_ 100% documentation / api stability for 1.0 … it’s “The goal” … Currently, there are tons of useful comments inline the code, and The API browser is being worked on in parallel, parsing/feeding off those comments. The volunteers that exist will be working feverishly to make the online book and API references all tied in together over the next few weeks. In their defense: the API wasn’t locked until yesterday just before the release, making documenting an ever changing source tree a living nightmare, even with the automation available. Hopefully, with the lock in place, this will all be ironed out, and some very shiny/useful demos and examples will be available.

Comment by dante — August 21, 2007

@dante: While we are all entitled to our opinions, we are not entitled to our own facts. Dojo is bloated, I don’t need to download its tarball to check that fact, browsing sample apps is enough to assert that. As a mater of fact, Prototype and JQuery pack more usefull features in less space than Dojo’s core. And if you really long after the return of fat client zombies, YUI or Ext are much better at emulating a GUI in a web browser. I’m not spreading FUD, I’m just warning the novice that in a browser less code is definitively more speed at both development and runtime. I’ve personnaly seen a few freshmen coming from the Java world get lost through the tons of buggy abstraction that make up 95% of Dojo, never beeing able to deliver anything reliable. And that’s a fact, not an opinion.

Comment by Laurent Szyster — August 21, 2007

@laurent: I’m still missing your facts? “dojo is bloated”, is clearly an opinion? The term ‘useful’ in itself implies opinion, though admittedly I’ve not delved deep into either Ext or jQuery to see what exactly is provided on a core level. Perhaps and interesting test would be write-ups on “how to do X in the various toolkits”, examining the benefits and shortcomings of each (they surly exists)? Be an interesting article. Hello Ajaxian? The ‘fact’ about “8 megs of minimized code” is clearly untrue, which you would have discovered had you not been unwilling to look. You _do_ need to download it to discover ‘that fact’, because what you will see are three very defined (much much smaller than the 0.4 branch, which is where most people’s “bloat” comments come from — which _is_ true: 0.4 was bloated, and slow in development enviroments especially) projects. I can’t accept your “buggy abstraction that make[s] up 95% of Dojo” fact, either. Perhaps you could cite specific examples? No argument though: Less code _is_ faster for a browser, entirely true. Dojo core is much less code than 0.4 branch, and it’s loading became a whole lot more intuitive. And if by “sample apps” you are referring to the nightly checkouts (http://archive.dojotoolkit.org/nightly/checkout/dijit/tests … the only public offering of ‘sample apps’ I am aware of) you have to understand that those aren’t “builds” … they are dynamically loading test-cases, un-optimized in any way, for developer reference. If an test has 20 dependencies, it loads 20 files, and could be slow. Post-build, it all gets rolled up into a single ‘minimized’ file, furthering speed [download and runtime] enhancements. You should be using builds in production, simple as that.

Not trying to sound like a fanboy here … But your comments were and still are almost entirely untrue. Short of a personal anecdote about “a few freshmen java developers”, you stated nothing but opinions. poorly formed [unsubstantiated] opinions in some cases. (fact: you didn’t even download it before you spouted the fud? ) “how could you?!?” think of the children. ;)

Comment by dante — August 21, 2007

@dante

Fact: it took FF2 about 20 seconds to load and display Dojo’s demo e-mail UI, which is not exactly fast to run.

Fact: that demo page is ranked by YSlow as F(59) and yet it provides a demo with only a tiny fraction of Gmail UI features (which is rated A(99) and loading under 5 seconds).

Fact: compared to the other AJAX libraries, Dojo’s API are overly complicated, obviously coming from a j-spelled “entreprisey” land (beeing 40 years old I went through enough of that shit to know when I see some).

Fact: building a multi-megabyte framework in JavaScript is not required to emulate a GUI in a browser (GWT does it in much less code) and in a browser JavaScript is intended to be applied as directly as possible preferably leveraging the protocols implemented by the browsers supported.

Fact: Dojo sucks.

Comment by Laurent Szyster — August 21, 2007

Laurent,

You sound bitter – as if Dojo personally took away your first child or something.

Ask yourself this: Are my comments constructive? Am I citing specific examples?

I agree the email sample is horribly slow loading, but I don’t think that is at all indicative of the experience you get with a production deployment of Dojo. I am speaking from experience on that. And by all appearance, 0.9 appears to be a huge advance over 0.4. Hopefully now that 0.9 is out the door, the team can concentrate on documentation, new samples and demos.

I’m using 0.4 in production and even with many widgets the library is nowhere near “multi-megabyte”.

Perhaps, if you can collect yourself, could you describe what it is about the Dojo APIs that you find overly complicated, and explain how a different framework does something similar (or the same) with a better API? That might be useful feedback.

Cheers,

Comment by Matt — August 21, 2007

I was impressed with Dojo when it first appeared.

Along side Dojo, I was also taking a look at MooTools/Fx and I certainly feel the technology is moving along at a nice pace however documentation is king.

Dojo is lacking quite severely in this department, I can appreciated the developers have not had time to document the features – it’s understandable, when your being creative, you want to stay being creative!

They should take a leaf out of MooTools, the documentation for this is comprehensive to say the least (as a note, I am pretty sure the dev’s had contributors working on the documentation).

One of the first problems I hit with Dojo is the sparce documentation, the API doc is there however it is completely meaningless if you cannot put it into context with examples and background reading. If the developers are reading the comments then I would advise the developers to stop coding and start documenting the framework from the ground up. If you need to pull contributors in then do so – right now the perception of Dojo is wrong.

To many it appears like the developers personal pet project that only they, and a select few have knowledge of the inner workings of the framework (allowing them to fully utilise it’s power).

Personally I struggled so much with the framework (because I had to make guesses at how to approach a particular problem, due to not having the documentation in place) I got fed up and left it alone… not a good start.

Comment by Tahir — August 22, 2007

@Sean

You’re right.

Beeing a troll sucks too ;-)

@Matt

Yes, Dojo makes me bitter.

Or rather, the software development process it implies makes me angry at people who promote it.

I mean, Dojo is like Spring, Maven and all those monstrous Java frameworks that have the same purpose: to replace creative programmers by certified enablers with the promise (but just the promise) of lower risks and cost cuts. This policy is not just taking the fun out of the job, it’s also making my job a lot more difficult because I have to struggle with a ton of unstable and broken API.

Now, talking specifically about Dojo, why would you bloat a browser with yet another fat client?

To develop Client/Server applications like we did in the 80’s?

Well, if you really want that, use GWT: it translates C/S fat clients into lean web applications that leverage web protocols. But trying hard to work around those protocols as Dojo does, that’s just stupid.

There are no more constructive comment to make about Dojo than there are to make about COBOL, SNA, OS/2 or WS-*.

It sucks by design.

The only useful comment to make about Dojo is to warn potential adopters that they are about to make a big mistake and loose quite some time figuring out by themselves how much it sucks.

Comment by Laurent Szyster — August 22, 2007

“The only useful comment to make about Dojo is to warn potential adopters that they are about to make a big mistake and loose quite some time figuring out by themselves how much it sucks.”

That’s not true. What is true about Dojo is that adopters will loose quite some time figuring out by themselves how it works.

It is a shame, I picked up Dojo at version 3.something, was impressed and used it on a few projects. But I left it again when I realised that instead of making better documentation available , the Dojo developers anounced plans for a version 0.9. During this period, the dojotoolkit.org website was degraded to some sort of glorified blog and that made things even less interesting. I went in search for other frameworks that simply got me going faster and KEEP me going faster
Mootools and Prototype are prime examples. Allthough neither of the two come even remotely close to the functionality that Dojo has to offer.

I’m afraid that Dojo has lost the battle, even before it entered the fight. A real shame and hard to imagine with sponsors like IBM and Sun.

Comment by Jax — August 22, 2007

obligatory use jQuery comment. :)

use jQuery.

Comment by rip747 — August 22, 2007

Each javascript toolkit has its pros and cons. Dojo has some cool widgets that none of the other libraries have. Now that’s a fact.

And to Laurent, the days of desktop apps are coming to an end. Adapt or lose.

Comment by Thad Jackson — August 22, 2007

I recently started using Dojo (0.43) for it’s filtering table and tree structure widgets. I was lucky in that I had a long implementation cycle to get this in. Reading the API is painful and I agree with Tahir’s post above that unless you have context (via example/docs) it’s difficult to figure out what you need to do to get it running. However, the forums folks and engineers working on the project were very supportive to my n00b questions and totally helpful. The forums responses enabled me to get it all working. I hope the Dojo projects’ next release is a significant overhaul of the documentation otherwise YUI, GWT, Prototype& MooTools adoption rate is going to far out pace Dojo. The library is heavy but it also enables you to do a lot more with less customization (more out of the box tools) than say Prototype.

Comment by Heather — August 22, 2007

I followed dojo since 2005. There is no doubt dojo is powerful and it does lots of things that other libraries can’t do.

With that said, I have given up on dojo and have gone to mootools. Why you ask… Well you guess it …. documentation and simplicity.

I would always run into a wall when using dojo and end up reverting my code back to plain HTML/form or end up coding the js myself.

My life is much easier now that I use something that has DOCUMENTATION and is simple to use.

DOCUMENTATION ROCKS!!!

just my 2cents

Comment by coke — August 22, 2007

i wasted a couple weeks trying to work with the Dojo libraries in early feb 2007. ust trying to read the what limited documentation there was crashed my browser. at this point there are several frameworks that are better documented and more importantly, stable. it’s not worth my time to take another look at dojo, and i’m not surprised to hear others feel the same way.

Comment by tobjar — August 23, 2007

dojo have started without the fancy words, great design , also with a lack of demos.
but , it is getting back its earned reputation. i just hope that dojo guys(karl, dante , alex ..) dont lose their current acceleration. dojo is generic, dojo is powerful in all directions . it has still its weak spots. i agree that you need to spend time to implement dojo. but just for the first time. i must say using dojo gets a lot easier with time.

you need simple stuff, you need some effect ? hit moo or 10s of likes or more quicker, make your own with some set/clear interval routines. go for it.

finally, for some nice little tiny piece of dojo code, please check the js of 0.4x’s gravity function( dont remember the exact js filename) .

wtg dojo

Comment by exo — August 24, 2007

also the dojo guys make money consulting companies on dojo. maybe thats why documentation is lacking =)

Comment by coke — August 25, 2007

Documentation is king! ^_^

Comment by 欣宇飞扬 — September 21, 2007

Leave a comment

You must be logged in to post a comment.