Dojo Toolkit 1.5 is now available for immediate download. Dojo is a JavaScript toolkit that is lean enough for use on a simple blog, yet powerful enough to scale to solve the most advanced web application engineering challenges, allowing you to use just the features and flexibility needed for your application. The 11th major Dojo release, version 1.5 offers many important improvements and enhancements and remains as IP-safe, freely-licensed, and free to use as the first release over five years ago.
Author Archive
Dojo 1.5: Ready to power your web app
Thursday, July 22nd, 2010Thoughts on Apple vs. Adobe
Friday, April 30th, 2010There’s really no obvious “winner” in the Apple vs. Adobe spat. While both sides make some good points, they miss the mark on many details as well.
First, Steve, we appreciate your bold Thoughts on Flash, but a few comments:
- Steve, Apple did not invent WebKit… you rewrote Konqueror and KHTML. Give credit where credit is due.
- H.264 is not truly open.
- Your app store review process is anything but open.
- Tools to generate source code that can be deployed to the app store should not be discouraged. Either the app passes or fails in a quality review process that you need to open.
- Flash exists because while the open web is great, it’s not perfect and there are still things that are easier to do with Flash’s development tools (this from a major open web supporter).
- The lack of true APIs for native features on the phone for web developers has been holding us back for three years. Camera, GPS, geolocation, native graphics acceleration, address book, etc. iPhone OS 4.0 helps a bit, but it’s way overdue.
- Give open web developers access to the things they need to make the native app development process less important.
Unfortunately, Adobe’s CEO did himself no favors in his Interview with the Wall Street Journal:
- Developers already have multiple workflows.
- Don’t make excuses and pass the buck on Flash’s performance problems on Mac OSX. Where’s the proof?
- One set of developer tools but support for all platforms is convenient for Adobe or Microsoft. Real developers mix and match tools rather than locking into a single vendor stack.
- Your tool stack isn’t open, so you really can’t complain. Unless you offer a decompile option, it’s hard to judge the quality of your generated application code. Your history of quality generated code leaves me skeptical.
- Flash being an open spec. is a misuse of the term open. Where’s the competing plug-in?
- The Adobe stack should innovate to support the open web as another platform, per your logic, and my advice. See PhoneGap as a great example of working more openly to solve similar problems.
- Overall, your view is that everything you deploy to should be open, except for your tool stack. We disagree.
Can Flash Thrive Going Forward?
Wednesday, March 10th, 2010The short answer: Yes, if it changes its strategy to one that embraces and augments the open web ecosystem, rather than continuing down the path of trying to compete with or replace it.
With the recent anti-Flash, pro-HTML5 buzz caused by the iPad and sites like YouTube offering HTML5-enabled video alternatives, I thought it would be useful to share my thoughts on the opportunities and struggles Adobe faces with the Flash platform. Given my propensity as a strong open-source advocate, it may seem odd that I bother to discuss this, but it’s an interesting thought experiment for me on where Flash still excels compared to the open web, and how it can leverage that to thrive as part of the world going forward.
Performance Testing of the Top 100 Sites is Misleading at Best
Monday, January 11th, 2010Recently, a number of performance tests have been released that are based on the performance of the top 100 web sites such as SpriteMe savings, the IE8 100 top sites test results, or the JSMeter research. These are in direct contrast with tests such as ACID3 which attempt to test the future of the web rather than just what’s possible today.
These efforts are outstanding and highly useful, especially the JSMeter work and their valiant effort to redefine performance tests that are indicative of today’s web apps.
I completely agree with one of their stated goals:
We hope our results will convince the JavaScript community to develop and adopt benchmarks that are more representative of real web applications.
However, I disagree with their approach: they are testing the performance of today’s already optimized sites! There’s nothing in the middle of testing today’s sites and the more unrealistic “test every feature” ACID tests.
I believe more accurate tests for tomorrow would be useful, testing what’s pushing the limits of the web today, but are not currently top 100 sites. My main objection with comparing performance across the top 100 web sites is this: The top 100 web sites are already relatively highly performant, because they are optimized for what’s possible today. They have and continue to improve thanks in large part to the work of Steve Souders and others in the performance optimization community. Because it costs significant amounts of money in server operations fees and bandwidth, high traffic web sites generally dedicate considerable resources to highly optimizing their sites. High traffic web sites also face significant competition and are highly scrutinized for acceptable page load time. Budget and competition result in popular sites not deploying code that makes pages load slower than their desired performance threshold. Even more importantly, top 100 sites have the budget to make their app work in the future when things change. You can dedicate people on your team to squeezing out performance improvements in all aspects if you have the budget for it. Most web apps cannot afford to do this.
When we’re testing the performance of new browsers or analyzing page load performance, we should also really be looking at what the top 100 sites will look like in terms of features and expectations in five years! So how do we do that today? There’s no simple answer, but here are some ideas:
- Test popular web apps, e.g. mint.com populated with large amounts of data
- Test apps that don’t support IE6, e.g. Google Wave
- Test all sections of popular sites, not just the home page, through an automated performance test harness
- Test ridiculous configurations of popular applications, e.g. enable every feature in modular applications until they slow down
- Test apps over long amounts of time in the browser, not just initial page load time
- Test 50 apps, each in a different tab, all at once, and see how fast you can make a browser like Firefox or IE crash!
- Test throttled networks that emulate the profile of mobile and satellite networks, slow hotel wi-fi networks that often limit the length and duration of connections, corporate proxies, tech conferences, and countries with overloaded pipes (e.g. YouTube in New Zealand)
Only when browsers are pushed to their limits do we see where they break down, and how sites break them. We also need tests and tools (such as instrumented usage of YSlow, PageSpeed, SpeedTracer, etc.) comparing the most complex apps and how they perform across the various browsers, as today’s complex app is potentially tomorrow’s median site.
To be clear, I’m not saying “don’t optimize for today”. I’m saying, stop comparing cutting edge sites to Google search results. Lumping these two together in a common test is like putting apples against oranges because they are both round fruit.
Dojo 1.4 Released!
Thursday, December 10th, 2009Dojo 1.4 is hot off the presses, with more than seven months of significant improvements to performance, stability, and features.
Of particular interest:
- IO Pipeline topics
- dojo.cache
- dojo.contentHandlers
- dojo.hash with native HTML5 onhashchange event support where available
- Traversal and manipulation for NodeLists (the return value for dojo.query)
- dojo.ready (easier to type than dojo.addOnLoad)
- Hundreds of refinements to the Dijit API and collection of Dijits, and a few new widgets in DojoX
- DataChart widget and other improvements to charting
- dojox.drawing lands!
- Editor improvements and new plug-ins in both Dijit and DojoX
- Grid is faster, and the EnhancedGrid lands!
- ForestStoreModel for the TreeGrid
- GFX improvements
- dojox.jq, a very experimental module aimed at trying to match the jQuery API as close as possible, but using Dojo underneath
- Dojo build system optionally supports the Google Closure Tools compiler
- Significant speed improvements, especially in IE
Read the full Dojo 1.4 release notes for more details! And thanks to everyone in the Dojo community that helped make this release great!
Convergence of Chrome OS and Android?
Tuesday, December 8th, 2009Google recently was asked about something we have suspected: Android and Chrome OS may converge. From our perspective, Android and Chrome OS both offer compelling opportunities for building great web apps, but having two distinct operating systems from Google, each with different approaches to development, just adds complexity and confusion to the overall development landscape. Of course, it still bothers us that iPhone apps and Dashboard widgets aren’t interoperable.
Android has the first mover advantage of being deployed today to many devices, but to really get the most out of it, you really should develop using Java, or employ a toolkit like PhoneGap. Chrome OS offers the promise of using web technologies that are popular today, but is not yet production-ready, or optimized for mobile devices like Palm’s webOS.
The long-term expected convergence from Google makes sense. Convergence of Palm’s webOS with Chrome OS makes sense to us as well as they are both pushing towards having a very similar WebKit-based operating system for delivering web applications. Palm already appears to be moving in the direction of converging with Chrome through their adoption of key technologies in webOS such as Google’s V8 JavaScript engine. There’s nothing confirming that this will happen, other than it just making sense.
While there is a lot of short term interest in apps, you can still get significant results from mobile web apps, and the gap between a native app and a web-based app will quickly shrink, as evidenced by apps like Pie Guy. After all, web apps don’t require app store approval!
Gears is Dead? Long live Gears!
Tuesday, December 8th, 2009It was recently reported that Google Dumps Gears for HTML5. If true, with the investment Google has made in HTML5, Chrome, Chrome OS, and Chrome Frame, this is not surprising, but it does leave a potential short-term gap for offline application development.
In their post, Read-Write Web asks if offline access is even necessary any longer. I guess they don’t spend enough time on airplanes or at hotels and conferences with poor internet connectivity! It’s certainly necessary, and while other browsers have developed significant offline capabilities, older browsers still need a plug-in like Gears.
In the interim, what should you do if you want an offline application? Do you develop for Gears and HTML 5 features? Do you wait for Chrome Frame to integrate offline capabilities? Do you use a toolkit like Dojo which will wrap the various possibilities? Or do you rely on something else like AIR, Titanium, Prism, or Fluid? The answer really depends on your application. If it is live now, you plan for the future but you keep going with Gears and/or Dojo Offline. If you won’t be launching for some time, you may want to talk to us about your offline app options.
At the end of the day, Gears is open source. If there’s a long-term need for its existence, the community can pick it up and run with it! Thankfully end-of-life isn’t the certain death-knell that it is with closed-source software.
Why We Love Chrome Frame
Tuesday, September 22nd, 2009Google today announced Chrome Frame, a plug-in that selectively upgrades Internet Explorer without breaking existing sites. Think of it as working like Flash, but for open web technologies, replacing Internet Explorer’s entire rendering engine for sites that include a single meta tag indicating that they would prefer to use Chrome Frame rather than IE.
So why is this a good thing?
Dojo and the Future of Web Apps
Tuesday, September 22nd, 2009If you’re attending the Future of Web Apps conference in London in early October, be sure to introduce yourself. I’m excited to learn the results of the 2009 Web Application survey.
After the conference, you can learn more about SitePen and the future of Dojo at these post-conference events:
- Dojo Foundation get together, a free event on Saturday, October 3rd from 11:00 to 18:00, with great Dojo presentations by a variety of Dojo comitters.
- Introduction to Dojo Workshop, on Monday, October 5th, where you can get a quick start in building great web apps with Dojo.
Facebook and FriendFeed’s Tornado is now Open Source
Friday, September 11th, 2009Orbited, cometD-python, and other Python Comet servers have new competition in the form of Facebook’s now open source Tornado web server. Tornado was part of the technology acquired by Facebook when they purchased FriendFeed last month, and Facebook has decided to open it up under the Apache version 2 license.
Tornado supports long-polling and HTTP streaming, but also includes many of the web site building blocks found in frameworks like Django. This is a really exciting announcement as Facebook and Google (with their Wave product) have both made major announcements around Comet technologies, bringing real-time capabilities to the mainstream, under open source licenses.

