3 ms·
Dojo tries so hard to turn JavaScript into a full-fledged OO framework. The problem is that Dojo is not intuitive at all. Most of the time you get lost in the
by Yuioup 13y ago
Dojo tries so hard to turn JavaScript into a full-fledged OO framework. The problem is that Dojo is not intuitive at all. Most of the time you get lost in the forest of angle brackets, DOM (dojo?) nodes, delegate functions, etc. It's impossible to debug. On top of that the documentation is awful.
Dojo will unnecessarily increase the development time of your application to a factor of 4. My recommendation is to avoid it at all costs.
- amitu 13y agoI have written the article because I agree with you, dojo is not intuitive. Dojo has a lot of documentation, but since dojo is in such a flux there is a lot of documentation that is out of date. After using dojo for at least one big project I am have a different experience. For the first time I started thinking about software engineering principles when I used dojo in client side. All my previous projects were in jquery and while they work, jquery has not helped me one bit in managing complexity. I have written my experience about how to use dojo right. Do not use too much of dojo, don't use dojo for page layout, do not use dijits that may not be as well tested as the core. I would highly recommend you give the tutorial a try.
- Yuioup 13y agoI think that's the problem. Because it is so much in flux one minute you think you have the framework down and the next minute you realize that things have changed. It's interesting you mention complexity. When you're developing a very rich client-side complex system, at what point do you stop and realize "maybe I'm taking this too far"? I'm beginning to notice that people are developing web applications the same way we did when we were writing desktop applications about 15 years ago. I personally think that we should absolutely not be trying to rewrite desktop applications for the web. Once the web application gets so complex that you need to reach for Dojo is when I think the application should be rethought and rewritten from scratch.
- amitu 13y agoTrue, but it is not like dojo is continue to do that. Dojo is going to a 2.0 release and there is a massive change between 1.0 and 2.0, primarily AMD. Dojo has previously shown a long history of backward compatibility. One of concerns of many dojo developers is that they should abandon the old code and directly switch to new one as the transition period is not doing any good to new developers trying to learn dojo, but if you have already written an app, dojo provides excellent backward compatibility.
- MrUnderhill 13y agoWeirdly, I have the complete opposite experience with dojo. The streamlined AMD loading makes it really easy to write modularized, structured projects and build it into release bundles. The store concept and compliant widgets are excellent, and while admittedly much of the dojox stuff is fragile, the dijits in general are very well made. The charting and drawing modules, with fallbacks (SVG, canvas, VML, Silverlight) have also been great to work with in my experience. Can you give some examples of things you find unintuitive or confusing? What makes it more difficult to debug than other Javascript libraries? How do you find the documentation lacking? (The latter has become quite a bit better in recent years, you may want to look at it again if you haven't in a while). I can understand that dojo may seem daunting at first. After all, something as simple as $('#foo').html('<div>foo</div>').css(...).click(function(.... in jquery, takes a fair bit more effort in dojo. This, and I suspect, quite a few of the other grievances you have, stem from dojo's insistence on modularization. This seems unnecessary at first, but in my experience, pays off as your code base grows. My recommendation is to seriously consider it for any complex javascript application.