Alex Russell - Project Lead, The Dojo Toolkit

Introduction

Alex RussellOn this week’s episode of Read/WriteTalk I sit down with Alex Russell the Project Lead of the Dojo Toolkit and Director of R&D at SitePen Inc. Dojo is one of the leading open source JavaScript libraries. This provides Alex a great perspective to comment on both the state of JavaScript as well as evolution of web browsing environments and competing approaches to Javascript for RIA development.

Diclosure: mSpoke has leveraged the Dojo libraries for a lot of our AJAX functionality in FeedHub and hired SitePen for training.

 
icon for podpress  Interview with Alex Russell [28:52m]: Play Now | Play in Popup | Download

Links

Transcript

0:40 Sean Ammirati: Alex, thanks for joining me today.

Alex Russell: Of course, thanks for having me.

Sean Ammirati: Sure. So can you start out for those who aren’t familiar with the Dojo project, can you just give us a quick overview?

Alex Russell: Sure, Dojo is a JavaScript toolkit. It’s a big pilot of JavaScript. There are many like it. But its key characteristics that differentiate it from the other excellent toolkit that you might have are that it has things like accessibility, international innovation and localization all taken into account. It’s got a packaging system that helps you build stuff in the large and those tools to help you out to manage your deployment. And it’s got a pretty healthy community around it in terms of corporate involvement as well as individual involvement. It’s legally licensed open source so anyone can play.

Sean Ammirati: Cool. How did the project start?

Alex Russell: I was working with Dylan Schiemann, who’s now my boss in Saipan, on a big old pre-Web 2.0 web
application for an enterprise software company, Informatica. And we needed better tools than we have. We had to do a bunch of in-browser, vector
graphic stuff and we needed a Java software which was significantly involved with the one that we’ve been using before.

01:22 So as a result we got in touch with was then the remnants of the DHTML community, kind of a bunch of old friends who are all off doing
things that weren’t their primary interests, by and large. And we all kind of got together and pooled out code.. And while we were in the middle
of that process, the Ajax thing happened. And I guess the rest is history.

Sean Ammirati: Interesting. Were you involved in the DHTML community before the Informatica job?

Alex Russell: Yes, I had worked in an earlier toolkit called NetWindows which hadn’t really gone anywhere. But there are lots of toolkits like that at that time. There are lots of small toolkits. There’s one or two or five people working on them and there wasn’t a lot of need. We haven’t really tapped out the potential of HTML and CSS so we didn’t get a lot of interest then. When the Ajax thing happened, it was pretty clear that the applications are trying to go to the web clearly needs more than HTML and CSS to give us some. A man was born.

02:20 Sean Ammirati: Interesting. Okay when was that?

Alex Russell: I guess that was 2004.

Sean Ammirati: Okay so it’s been a couple of years.

Alex Russell: Yes.

Sean Ammirati: All right. So as you said there’s a number of different JavaScript libraries out there. You’ve kind of hit on this a little bit earlier. Let’s start by just talking a little bit about maybe what the sweet spot is for Dojo versus some of those other libraries that are out there.

Alex Russell: There are a lot of really good options these days. When we started Dojo there weren’t. And I’m glad to see
that tools like Prototype and jQuery and all that on the stack, and the things about EXT and GWT are really high quality pieces of work. And they are real engineering in a browser. And we didn’t have a lot of that when we started Dojo. There wasn’t much of that lying around.

03:12 So we’d like to think that Dojo kind of sits in the aame category as a lot of those tools. The differences are generally
around breadth and depth and not necessarily capability for any, particularly use case. So there are tools like jQuery which are traditionally been very tight and focused and more effects.Where if you’re building a webpage and you need to upgrade it, we have some Ajax kind of stuff. It’s a pretty natural fit. But if you’re trying to build web applications, there’s not a lot of tools there that help you build stuff at scale. The other side of the spectrum are tools like GWT which are designed especially for applications and don’t really pay webpages as such must mind.
04:00 So Dojo was kind of somewhere in the middle.We don’t think that you need a pre-compiler. We don’t think that there’s anything broken with Javascript as a language or with the Web in general. But we did think that HTML needs a helping hand here and there.So we try to provide a markup driven way to declare templates which is from the page and stuff that what HTML can’t at the server provide by default, so localized and inaccessible date pickers and formatting
and validation boxes and layout managers and all that kind of good stuff.I think broadly speaking, the other toolkits that might be very close competitors, commercial and open source, are probably things like Backbase and Jack Slocum’s EXT and GWT
obviously and the slew of commercial widget vendors which are available.

Sean Ammirati: Interesting. You talked about how when you started there weren’t. You know there weren’t as many toolkits as there are out there now. From where you sit as one of the original creators of these toolkits, where do you see these JavaScript libraries evolving?

05:13 Alex Russell: I’m not sure. It’s a hard-sell right now. To be pushing very large bundles of JavaScript around the network. It’s getting easier by the day, of course. And Moore’s law is on our side and the networks are getting better and better. But fundamentally this is about headroom.People want to build apps.
People want to take what you can do with a traditional browser, not bother with the plug-in. I know they could deploy a richer app today than yesterday. And a lot of that comes down to how much leverage do we get for kilobyte or whatever the unit of measure is in terms of weight and se your performance or speed.And that is a trade-off that people tend to make at the expense of either complexity or maintainability. So Dojo takes the perspective that you
probably want a good chance of maintainability and a lot of re-usability amongst your components. And so we give you a pretty rich way to build
your own components.
06:10 Maybe at this time it’s a little bit of speed here and there. We’re trying to get you tools that speed things up when you need to.
The other end of the spectrum is GWT where as you eschew JavaScript entirely and go straight for Java because they can compile
everything. And everything’s always compiled in that model. But it needs to just try a few sources. You can’t really understand what’s
going on. There’s no the one to one knack in between what the developer meant and what you get at the other side, aside from necessarily visually.

Sean Ammirati: Right, interesting. You did say a couple times that GWT is Google Web Toolkit for this?

Alex Russell: Yes, GWT is a high quality open source piece of compiler technology from Google.

Sean Ammirati: Okay, cool. So let’s step back up a level if we can. One of the things I think that’s interesting is more
and more as you look at applications at least from my perspective, it seems like what you can do in Flash and what you can do in JavaScript,
the lines are certainly getting more and more blurry.And to guess at some extent that means there’s a higher level in the decision tree that
people need to make which is are they going to build the rich media components in their application in JavaScript or Flash. Obviously you
are good in JavaScript applications, but how do you see decisions being made? What are the criteria that you think should lead someone to using
JavaScript versus using Flash?

07:39 Alex Russell: So I think the Flash story is a lot more compelling than the old Flash story was in that it’s XML. You can transform it. You can re-compose. You
can get something different out of it in a way that you really couldn’t with closed formats like SLA’s. That said, I think that there’s an interesting property to the web where things that are open web technologies are text on a wire. So you can take them apart when you get them on either
side of it. . You kind of have that freedom to tinker as it were with anything that you receive.
08:12 So you can figure how it works and you can use it in your own stuff. And that’s a really important property that markup gave us. And so it’s interesting to see there are a lot of other tools are learning from markup. So they’re becoming markup driven. And where they draw the line of where they stop being markup and start being code, it’s kind of their differentiator right now. And where they draw that line buyss on things in terms of responsiveness, the ability to shipped more optimized version of things, that kind of things.The Flash player obviously has really tight media integration. I guess we love to see browsers get that kind of media integration too. And in fact, Mozilla and Opera are starting to do it inside of the FCG run times that they are shipping. And I think right now, the decisions are being made at the edges. So do you need those kinds of capabilities? Do you want to try to wire them together with HTML? I think you probably don’t. If you need rich media capabilities and you need to build it in your application platform something like Flash makes a lot of sense.
09:19 If you don’t need that stuff, there’s probably a pretty good chance that regular old, plain old HTML plus JavaScript is good. It’s going to get you where you want to go. And a.lot of that boils down to skill set.

Sean Ammirati: Yes, absolutely. Earlier you used the phrase ‘real engineering in the browser’. Would you include people who are building Flash apps as doing that same type of engineering inside the browser?

Alex Russell: They’re not engineering inside of a browser. They’re engineering inside of their piece of hardware. The Flash runtime is essentially a piece of hardware. Instead of VM, it has an instruction set. It’s not a browser. They’re doing engineering obviously but it’s not browser based. It’s something different.

10:12 Sean Ammirati: Right, okay. I’m trying to still dig in because the decoupling thing, well certainly interesting as a developer. It seems unlikely that’s
how people are making the decisions. Do you feel like there’s an interaction advantage to one over the other?

Alex Russell: Oh yes, I think you’re right. That the decisions are being made based on user experience which I think is really good. I think it sets the bar higher. And Flash has a real short term advantage in user experience. They can control the platform very tightly. It will be interesting to see how far close platforms like Flash and several like that can parlay into a long-term advantage. They might be able to. The Achilles’ heel of the open web right now is that there is no predictable way to rev it, right?

11:03 How do you get an MP3 into IE? That’s really hard. So we’ve got toolkits like Dojo which backfill a lot of capability on towards the browsers, can already do to provide those features. But there are certain things that are fundamentally not approachable without infrastructure
like those volumes could provide.

Sean Ammirati: Yes. Okay, interesting. Absolutely. You said another one which I don’t even want to bias you in this. Just tell me your perspective on Silverlight.

Alex Russell: Oh I think Silverlight is really interesting. So a lot of the technologies that have come after HTML have learned various lessons from it over time. The first one that people learned was that your new thing has to be marked up whatever your new thing is. It’s got to have an XML language. They haven’t quite learned yet that it should flexibly parsed like HTML not strictly parsed like XML. But everyone learned that has to be marked up driven.

12:08 The second thing that people learned is that it should be text on a wire. And this is where Silverlight has an advantage over Flash from an evolutionary perspective. People can take apart Silverlight app and go, “Oh, I can understand that.” In a way that they can’t decompile a Flaash app. So that’s an advantage
and a disadvantage but it’s the same advantage that the web had over plug-ins and Win32 executables over time.It’s easier to figure out how to do something with it once you’ve got something that you like, that you can look at. I think that’s an important advantage over time. Obviously the real race is going to
be to find out whether or not they can get any distribution. Can Microsoft get distribution for the Silverlight plug-in. It’s good technology.

Sean Ammirati: Okay so let’s step-up above the toolkits completely. Obviously with what you do both consulting at Saipan working on the Dojo project, you’re exposed to a lot of different web applications. What are some of the web apps you’ve seen recently that you are really impressed with as a user and someone who’s familiar with this technology? It’s like wow, that’s really cool they did, whatever. And if you could touch on what they did that would obviously make the answer more interesting.

13:22 Alex Russell: I kind of live in a little bit of a closed-off world that I got a long bug queue and not a lot of time to play with apps, unfortunately. But I was playing with the new versions of Google Docs the other day.  And a lot of the stuff that they have done from the UI perspective in terms of making the layouts fluid and contextual really makes me happy as a user. They’ve done really great job there. The Buzzword app that we just bought.
14:00 Alex Russell: That’s really powerful. The way that everything is contextual, there’s not a lot of clutter in the UI. And then it does what you’d expect out of a desktop publishing system. It’s really interesting. I think people are starting to expect different things out of a web publishing system versus a desktop publishing system. And it will be the interesting to see where that line falls. To see something like Buzzword can approach the advantage of something
like Google Docs for team and collaboration stuff.

Sean Ammirati: Can you talk just a little more about that?

Alex Russell: About which?

Sean Ammirati: About the line between what users’ expectations are from your perspective in terms of a web publishing platform and a desktop publishing platform.

Alex Russell: Oh sure yes. The web fits in things and all kinds of technologies and then it cut them off at the knees and said, “Quick, run!” And as a result we both have entirely new metaphors with users. So there’s a lot of things wrong with editing documents on the web today, obviously.

15:16 The browsers for one don’t give us really good tools to do it. Which is why I think things like Buzzwords are so appealing. But fundamentally, they reset expectations so that users understand when they go on and they work inside of Writely, Flash, Google Docs or Zoho Writer or whatever it is. That they’re going to get something that is flawed. That it’s not going to be pixel-perfect when they share with somebody else. Well that’s okay. It has the same visual contract that blogs have. Things look roughly the same but they’ll work on your phone without a particular plug-in. They’ll work on anything.The trade-off for being best effort is that you get ubiquity. And so people will come to expect that these kinds of best-effort systems may not give them control but will give them ubiquity. And they’re willing to take that bet. Because they are not doing the desktop publishing thing better. But they’re doing the web publishing thing mentally better by making them inherently social and making them inherently multi-user, by getting rid of the shared files system idiom.
16:20 All that stuff that were so brittle inside of an organization is kind of falling away. And so they don’t compete necessarily based on the old competitive differentiators. It looks the same on my inbox as it does on yours. To compete on new differentiators of how easy are they to use with other people versus do they give me the exact pixel-perfect thing that I like over here.

Sean Ammirati: Yes, totally. I completely agree. It’s interesting because we obviously see a lot of these apps at ReadWriteWeb. That’s a nice summary I think, so thank you. So let’s actually a step back-up even one level higher. But still kind of taken from I think an interesting place that you said and looked at this.What are the things that you’re most excited about in terms of the evolution of the different web browsers? You mentioned earlier a couple of things in Mozilla and Opera. But just in general as you look at what’s happening with the different web browsers, what are you most excited about?

17:22 Alex Russell: I’m really excited about Google Gears, which I guess isn’t a web browser. But it points to a direction where we don’t have to rely on browser vendors to give us what we want. It’s foundational. It’s got auto upgrade enabled and it provides capabilities that are additive. They don’t replace the web.  So Flash and Silverlight are trying to replace the web for a particular class of use cases. And what I really love about Gears is aside from it being well-run open source, you know all that stuff, is that its idiom is more like trying to figure out ways to be orthogonal to what the Web can currently do and still improve it.
18:08 So if you got Gears, you can do this thing. If you don’t, you get a degraded experience which is very webbish because the web has always kind of been best effort. So it improves the high-end of what best effort can be. And I like that a lot. From the browser vendors themselves, I wish they’d all ship Gears, for one. I’m really excited about the speed improvements in Safari 3. Safari 3 is probably the world’s fastest browser right now.It’s a tight race on a lot of vector graphic stuff between Safari 3 and Opera 9. And I love to see that arms race because we’re spending a lot of time working on vector graphics, things like charting and graphing. You know even some 3D work, for doing 3D charting and graphing inside of Dojo right now. Then the faster that those substrates are, the better
an experience they can deliver out of them. So I’m really excited about that work.
19:01 And obviously the fact that HTML 5 is in moving again. That’s not a particular thing that a browser vendor is shipping right now. But all the browser vendors are participating in HTML 5. And a lot of them are working on the working group before that. And the sooner they can deliver meaningful results out of that work, the better it will be for everyone.

Sean Ammirati: You talked about a couple of things you’re working on in Dojo. Anything else that you’re excited about that’s coming down for Dojo?

Alex Russell: Yes, so 1.0 is going to be out end of next month or I guess now this month, end of October. And we’re adding two major new features. We’re adding a re-written charting engine and a new table widget. And those don’t sound like big magic I guess. But they’re being tied up to our new generic data store infrastructure. So that you can take a data in one format and get a chart in it or get a graph of it or put it in a table and slice and dice it without
a lot of extra work

20:01 And those interface elements are being designed to be very high performance. So the table widget is actually something that we announced a couple of weeks ago. The collaboration with the pre-existing software vendor who has just recently bought. The Turbo Ajax which was recently purchased by ActiveGrid. So
many Turbo’s and Active’s. So ActiveGrid recently bought the Turbo Ajax grid but just before its purchase they donated their grid component to the Dojo Foundation.And that grid component raises the bar for slicing and dicing data in a browser as one of the open source toolkits. Cause you don’t have that little pagination buttons at the bottom anymore. You tell what your data set is, it will go and it will give you scroll bars that you can quickly get through your data Which really makes things like analytical apps much more feasible inside the browser. So we’re really excited about that. Kind of bread and butter functionality but you got to have it.
21:01 Sean Ammirati: Absolutely that’s great!
Okay let’s transition to a couple of personal questions in terms of your roles at Dojo. So the first is, you’ve been doing this since 2004. What has been the thing that surprised you most?

Alex Russell: I guess in 2004 we didn’t have much hope that Internet Explorer was going to get any better. I’m surprised that I use IE 7 in such a damn squib. I’m surprised that it’s such a disappointment. I guess I’m surprised at the ingenuity of the toolkit guys these days.  There are a lot of toolkits. Dojo has its share of cleverness. But a lot of these toolkit are doing stuff which is just really, really interesting.
You know the jQuery guys are doing a great job.Everyone’s kind of flirting with the beauty of the language now. And it’s been kind of really heartening to see the progression of the programming world towards the languages and a larger appreciation of JavaScript as a language. I think in 2004, no one really expected
that kind of pseudo-functional languages would ever get any respect. And I’m happily surprised to see that they do.

22:20 Sean Ammirati: Cool! Any features in Dojo that you’re most proud of? Or libraries?

Alex Russell: I guess the package system. It keeps paying off. It’s still something a lot of toolkits don’t have. GWT has it implicitly through Java’s package system. But a lot of these toolkits don’t have it. It makes it easy for people who aren’t us, aren’t the toolkit author to go build systems in large. And so we see
users coming back with their own entire widgets, or their own entire libraries. We’re using the Dojo loader both to pull that stuff in at development time and to make it go really faster at deployment. That always make me happy to see. The people can use that as leverage inside their own applications.

23:14 Sean Ammirati: Can you just explain a little more about what the packaging system is?

Alex Russell: A lot of programming languages have a built-in way to say “from module foo import bar”. JavaScript doesn’t have a particular equivalent to that. So we had to go build one inside of Dojo and it’s kind of part of the core functionality of Dojo. So between that and the events system, we get a lot of leverage
about letting people build applications in a language which frankly wasn’t designed to support it.

Sean Ammirati: Interesting. So that’s very cool. Finally, any surprises around the open source aspect.  Anything that has worked out better because it’s open source? Anything that surprised you, I guess on the other side of that question?

24:08 Alex Russell: This is I guess our rebooted earlier projects that we add up. There were a bunch of people who were originally working on Dojo had kind of cobbled together on their own. And I didn’t understand at that time how important getting the mechanics of the licensing correct would be. So we kind of copied what Apache and Eclipse do with regards to having a foundation, making sure that people sign, contribute agreements and get all those stuff in a row. And that’s
another thing that just keeps paying off over and over again.People can come and they can look at Dojo, like it and then never have to worry about whether or not they can use it in a commercial application. Because they know that the playing field is level and that there aren’t any land mines on that field. They can run over as many times as you want and still be okay. That’s keeps paying off. Big organizations will look at other toolkits and they may like features in them.
But they’ll pay to have these features in and introduce them to Dojo as opposed to taking up a different toolkit because our licensing
is so much cleaner.
25:18 Sean Ammirati: Interesting. So you started with the Apache license, do you have a counsel? Like a lawyer on you team? What have you done? Have you just not touched it? How does that works?

Alex Russell: So we started with the licensing which was Apache-like. We tried to get somebody that was this close to a public domain as they could possibly get called the AFL, the Academic Free License. We eventually added the BST License which is much shorter and easier to understand and everyone knows what it is. We don’t have a lawyer on the team who volunteers time. We do actually have a lawyer for the Dojo Foundation. We went ahead and set-up an independent foundation over the years to shepherd the intellectual property of the community. But we don’t spend a lot of time talking to her.

26:08 Sean Ammirati: Okay.

Alex Russell: I guess fortunately for us. Mostly we just ask our betters about what did you do and what went right and what went wrong. And they said don’t do this or do do this. I guess I was continually amazed at how willing people who are famous in the open source world were to talk to us and help us out along the way. Like guys like Brian Behlendorf would actually sat down and answered questions about why Apache does things in a particular way. This is something quite like that.David Ascher has been recently in an active state in the Mozilla Mail Corporation if that’s going to be called. They’ve been incredibly
supportive over time and helping us understand where those land mines are when a big company show up and they want to play. We don’t
have an idea what it was going to look like. And we were better prepared that I think a lot of people would have been as a result of their generosity.

27:09 Sean Ammirati: Cool. So one last question. A product manager comes to you and they say, “Help me understand why I’d want to use Dojo?” And you can’t describe it at any of the technical reasons. How would you describe that at a stupid product manager level?

Alex Russell: I would probably say its accessibility. I would say something like. Are you going to be 20 years older in 20 years? And do you expect this offer around then? And if you do, then you probably want to build it with our stuff because we’ve thought about the fact that you might not have such good use of your eyes or your hands and your motor coordination might be gone. You might want to be able to use a a screen reader if things go very badly. We’re trying
to build, create experiences for everyone, not just for ourselves right now.

28:02 Sean Ammirati: Great answer. Thanks Alex. I really appreciate the time joining me today.

Alex Russell: Yes, thank you so much.

 

Leave a Reply

  Subscribe to Entries (RSS)  |  Add Podcast to iTunes readwritetalk.com is proudly powered by WordPress  
© 2008 readwritetalk.com