Dojo 1.1 is mighty slick

Alex Russell picked out a few great highlights from the new Dojo 1.1 release and has a nice little essay on open source to boot:

I could go on for a long, long time about what’s great in Dojo 1.1…but I’ll spare you most of that. James, Pete, Dylan, and the release notes can give you a strong sense of why Dojo 1.1 is the most polished, fastest, and easiest-to-use release of Dojo we’ve ever done. For the impatient, you can already start using it from the CDN without downloading anything.
[From Continuing Intermittent Incoherency » Dojo 1.1: Some Awesome For You App]

Dojo is reaping the rewards of having spent a lot of time getting their infrastructure together. 1.1 really improves so many parts of the package.

(ObDisclaimer: I’m not directly involved in the Dojo project myself, but I work directly with core Dojo folks at SitePen.)

Refresh Detroit JavaScript Library Techniques meeting

I’m just back from attending this meeting:
Refresh Detroit » February 27, 2008 Meeting: JavaScript Library Techniques, Tips and Tricks
. Part of the abstract:

The advent and popularity of JavaScript libraries has caused front-end programming paradigms to change drastically. Design patterns are emerging, object-oriented concepts are common place, and the line between client-side scripting and server-side scripting is beginning to blur.

The talk was given by Brian Reindel of Niche Retail. (Brian formerly worked at Fry Multimedia and his wife currently works there. I never worked at Fry, but I worked with a few Web Elite people who moved on to Fry.)

Brian was angling for a tricky sort of talk. He was shooting for a talk that would expand people’s horizons from doing very simple “everything is a global… just call it in onclick” sort of JavaScript work to more complicated techniques like the module pattern and callbacks. He briefly highlighted some of the techniques used by JavaScript libraries (jQuery is Brian’s favorite). There were some good questions about accessibility (I mentioned that this is one of Dojo’s strong suits) and other JavaScript-library related topics.

I think Brian did a good job for a fairly brief talk. It would have taken a long time for him to get into closures and prototypes which are topics that many casual JavaScript users are not familiar with.

This is the first Refresh Detroit meeting that I’ve attended. It seems like it’s hard to get the word out about local technology-related groups around here. Some of the group’s areas seem interesting to me, and it’s possible that I’ll do a talk at a future meeting.

Adobe AIR out, who will use it?

Yesterday, Adobe shipped AIR 1.0, an open source toolkit and runtime for creating desktop apps using web technologies. For a time there, I really wondered why someone would want AIR, rather than just building a normal webapp that runs from the server. I can now think of four reasons:

  1. offline – This one is obvious. AIR is a Google Gears competitor as a way to take a webapp offline.
  2. performance – Rather than relying on the browsers’ caching behavior to make parts of your software load snappily, just ship the whole app to the user so that the whole thing is local as they navigate.
  3. browser consistency – Maybe you’re sick of trying to make IE work (I wouldn’t blame you for that, really). AIR uses WebKit, which is a nice browser platform to target. Of course, this is a lame reason to use AIR. Forcing one’s users to install the AIR runtime and accept the download of one’s app rather than just using a good JavaScript toolkit and common cross-browser coding practices seems like a bad attitude toward one’s users.
  4. local data access – You can manipulate files on the user’s hard drive. This lets you more comfortably do things like build a password manager. Pownce uses AIR to allow people to conveniently drag-and-drop files into the Pownce service.

Installing your first AIR app is amazingly easy. I’m not sure what trickery Adobe pulled to do that, but it’s pretty cool. The only app I’ve used so far is eBay Desktop. In my opinion, there’s no reason that app is an AIR app rather than just a normal webapp. As far as I can tell, you need to be online to do anything useful with it. I don’t think any of the 4 criteria above apply to eBay Desktop.

It’s also notable that SitePen has announced AIR support with Dojo 1.1. That means that you can build cross-platform desktop applications using Dojo. That’s nifty.

AIR is a gamble for Adobe. From what I’ve seen, they seem to be putting a lot of money into it. Time will tell if any truly compelling apps appear.

Aptana Jaxer bridges the client and server

I believe that we’re going to see some significant post-Rails server side web tools developments this year. TurboGears and Django were both never “Rails clones” because of their history and where they came from. But, all three promote a fairly similar idea of webapps are put together on the server.

Last month, AppJet provided a look at something different. It combined transparent persistence and, importantly, a seamless ability to run code on both the client and server.

A bigger deal, though, is Aptana Jaxer which has just been introduced. Jaxer runs the Mozilla engine on the server and provides a mechanism for writing the server side of webapps in the same way that you write the client side (only without the browser compatibility headaches, of course!) You can manipulate the DOM using traditional JavaScript and have the server push out the changed document to the client. Jaxer will also automatically generate client->server proxy functions or copy code from the server to the client if you have code that needs to run in both places.

I think that Jaxer and AppJet are just the beginning. I’ll definitely be writing more about how the server is changing.

Update: I just noticed that Jaxer is licensed under the GPL. That complicates things a bit, because it seems more like a library than a compiler. In other words, you can’t freely give someone a copy of your app with Jaxer and not be forced to use the GPL. I’m not certain that you could even give them a copy of your app.

Dojo 1.0 released

I’m an early riser, usually starting work around 7AM Eastern. Today is no exception, despite the fact that this is my first day at my new job. I was surprised to find Alex Russell online when I started up this morning, but this explains it all: Dojo 1.0 has been released. Dojo 1.0 is huge (and yet compact… 23K core!) and powerful. Congrats to everyone who worked on this release!

Dojo toolkit overview at CodeMash

I’ll be speaking at CodeMash for the second year in a row. At CodeMash ’07, I did an introduction to TurboGears.

At CodeMash ’08, I’ll be doing an overview of the Dojo JavaScript toolkit. Dojo is a comprehensive and powerful package, so I’m going to do what I can to highlight nifty things the package can do. I’m going to work under the assumption that people who attend this talk understand JavaScript, but that’s really the only pre-req.

CodeMash ’07 was a remarkably well run conference, given that this was the first year. It’s a great conference to show off technology like Dojo, because there is a very diverse audience. (That’s the whole point after all: bring people from different areas together… .NET, Java, Python, Ruby and JavaScript all in one conference!)