In the run up to The Ajax Experience conference coming up at the end of this month, Dion and I thought it would be fun to interview a few of the speakers. In this episode of Audible Ajax, we talk with Gavin Doughtie, a Dojo contributor and Google employee. The topics range from browser graphics to hiring good JavaScript engineers. Hope you enjoy it!
Everyone knows that the big news of the week is Google Chrome, Chromium, and V8. Ben and I sat down for our podcast update and delve deeper at how all of the browsers are doing interesting things and progressing nicely. We discuss SquirrelFish, TraceMonkey, and of course V8.
We also delve into Canvas land and the fun and frolics that are planned for The Ajax Experience in Boston that happens soon. I am excited about the framework mini-events that happen around the same time too, and gather the crew behind jQuery, Dojo, and Prototype.
Welcome to the inaugural episode of a new podcast to cover news, happenings, and our opinions on the Open Web (download the Open Web Podcast episode one directly or subscribe to it, including via iTunes). When I say “our” I am talking about the founding podcasters: Alex Russell, John Resig, and myself. It is a pleasure to be able to share air time with two of the real leaders of the Open Web, and specifically the Ajax space thanks to Dojo and jQuery.
What is the state of the Open Web?
That is how we started out the podcast, and we got to see very different opinions. John discusses the decentralization and new openness that we see across the Web. Alex was a little more wary, and talks about how he wants the Open Web to progress faster. He noted that a lot of the good work has been a little away from the client, and instead in the area of identity, transport, and formats.
We then move on to HTML 5, where we discuss items in Mark Pilgrim’s This Week in HTML 5 piece including Web Workers (think: Gears Workers), and the clarification of alt tag usage in the img tag to have you using alt="{diagram}" and the like.
We have a detailed chat about Web Workers, and where we see them being useful. John talks about issues around not being able to talk to the DOM, Alex talks about mashups, and I talk about some tests showing how they can help performance in a few areas. Matthew Russell did a demo using the Dojo 2d code at OSCON, and showed how he doubled the performance by pushing out computation into a Worker. John also talked about a special case for passing DOM fragments or the like to a Worker with special serialization. Of course, security is a concern for all of this.
John brought up the new data- embedding tactic that showed up in the HTML 5 spec. A conversation ensued around how you should separate your data from presentation. Is the DOM there to store data? Isn’t it a good place to keep it? Is “data-” just too long?
It is exciting to think that the W3C Selectors API will soon be implemented in Firefox 3.1, Safari 3, IE 8, and probably Opera 10. That seemed to happen pretty quickly. John and Alex talk about how this is going to mean a lot of chopping code from their frameworks, the increase in performance, and the subtle differences between the spec and how they were doing things.
The discussion leads to a new feature, named scoped CSS, that allows you to say “this CSS only works over here.” This could be huge, especially if you have an application such as a CMS, where people upload their own content that can mess with your application structure itself.
Next, we delve into the world of Firebug. John talks about how Firebug development is being bootstrapped by Mozilla and other contributors, and he discusses the upcoming versions and what you can expect. Stability and performance are top of the list. Don’t forget the Firebug Lite improvements too, which mean that you get more than just console to play with in non-Firefox browsers. I just posted the notes on that meeting, kindly taken by Steve Souders.
We talked about the Open Web Foundation, and Alex discussed what he would like to see come of it. He is optimistic, and thinks that the real test will be if we see the incubation of projects that really push the Web on the client side, as well as the identity side.
Finally, there is news in the Dojo community and Alex spills the beans. After over 4 years of service, Alex is stepping down as the project lead of Dojo, and handing over the reins to Peter Higgins who has shown great chops as both a commiter and an external leader. We wish Pete the best of luck! Alex isn’t sneaking off into the sunset though, as he talks about in his post on the subject, he will see be an active member of the Dojo community for a long time to come.
Finally, thanks again to John and Alex for taking the time to start this up with me. Please let us know what you think, and what you would like us to talk about.
With my Google hat on, I got to interview Michael Marcus and Rui Ma, two recent graduates from a masters program at NYU. They joined me to discuss Gears on Rails, their open source framework that makes it easier than ever to take a Rails code-base offline.
They take the approach of giving you a high level Ruby-ish way of developing your Rails app and having it work offline against local storage.
This means that you end up building actions like this:
def create_local
'
post = Post.build(params("post"));
Post.create_local(post);
window.location.reload( false );
'
end
They build the local framework on the Jester framework that is a "JavaScript client for REST APIs that uses Rails conventions, and is inspired by Rails' own ActiveResource".
This means that you can write client side code like this:
On the back of the iPhone 3G news at WWDC, the next biggest thing was the launch of Mobile Me, a compelling user experience to access Apple services using standard Open Web technology.
The application is written using the SproutCore framework, and I got to sit down with Charles Jolley, one of the founders.
We talked about the history of the project, how it differs from other frameworks that are out there, and where they are going. It is interesting that this podcast comes after the 280 North one, as they are both Cocoa inspired.
SproutCore is much more JavaScript focused though, and gives you MVC in the client in a simple and intuitive way. I found it interesting to see how the framework has developed, from its Rails plugin roots, to now (dispel myth: it has no dependency on Rails, just some build files are Ruby).
Charles talks about techniques that they use to give you fast applications (common global event dispatch seems key, and Prototype 2.0 is adding this) and how he feels that compelling rich browser applications will keep pushing the browser vendors to speed up, and shape up!
As I say in this podcast interview, I got an early look at 280 Slides the application that launched yesterday to much acclaim. People are calling it "Keynote on the Web", which the team finds very humbling, and hope that one day they have all of the great features (and more!).
I really like these guys. A couple of them worked on cool products at Apple, and it turns out that they started the language and runtime work back at school.
Objective-J is the language that takes JavaScript and makes it Objective (as Obj-C did to C). Lots of square brackets. When the browser gets served .j files, it preprocesses them on the fly. This means that you can do things like, use standard JavaScript in places.
Cappuccino is the port of the Cocoa framework.
The guys talk a little about the toolchain an why they did this, and even how it enables future cool things such as generating a native Mac application from the same code.
We also get into the fun cross browser issues that they work around, and how they are abstracting developers high up, so you don't have to deal with these issues.
Finally, I was excited to hear that they will be open sourcing the code at objective-j.org shortly (may not be there yet). They are going through the usual issues of choosing a license (Apache2 please?), a source control system (Subversion vs. Git), and documenting the thing ;)
The team was very interested in learning what JavaScript developers think (They have heard from Objective-C folk who love it), so let them know in the comments!
Today we have Bruce Johnson of the GWT team talking to us about GWT 1.5. He discusses the new features, such as the long awaited Java 5 language support, performance improvements, and much more.
It is very nice to take an application, run it through the new GWT 1.5 compiler, and get an instantly faster running application "for free".
We are having a special week at Ajaxian. Ben and I are giving an Ajax talk at JavaOne this week, and decided to put a little video from Ajax pioneers. As we worked out what we wanted to do, we asked the pioneers for a little time to do an interview. Although only a piece of the interview will be used in the live presentation, we wanted to get the full interviews for the community here.
During the week you will hear from:
Sam Stephenson of Prototype
Bruce Johnson of GWT
Alex Russell of Dojo
John Resig of jQuery
On Wednesday, we will have a special video that features Ben and I having some fun with a new type of Ajax application.
Let's cut to the chase, and listen in to Sam Stephenson. Although we couldn't get to him in person, he kindly recorded himself via his laptop. My voice quality is poor, but we are all hear to listen to his thoughts on:
The future of Prototype
What excites him about new versions of Prototype, and what problems are they trying to solve
Thoughts on the current crop of browsers, and what he wants to see
In the interview he discusses pdoc, a new inline documentation tool, Sprockets, a tool to help package Prototype, and new event delegation techniques.
I had the opportunity to sit down with three fine gents from Aptana to discuss their recent launch of Jaxer, the "server side Ajax framework".
Paul Colton, Uri Sarid, and Kevin Hakman all sat with me to chat about things. I have already played with Jaxer, and created the Google Gears wrapper which can be used seemlessly for use cases such as "If the user doesn't have Gears installed, just do it on the server".
We discussed a lot in the twenty odd minutes including:
Where the idea for Jaxer came from
The difference between a server side JavaScript framework and Jaxer (since there are many of them!)
How Jaxer works (think of a headless Mozilla browser)
Side effects of going this direction
How developers are using it
How does your architecture change if you are using Jaxer?
How can you talk to code in Java and other languages?
How JavaScript 2 fits into the picture
What about deployment?
A lot of good stuff. Thanks to the crew for taking the time to chat with me. What other questions do you have for them?
Ok. In Firefox 3 is the killer browser. And I think I’ve been using the Beta since Beta 1 and Beta 2 is even better. Even in the Beta, we’ve surpassed the quality of Firefox 2. So I already encouraged my mom and my grandmother to update their Firefox 3 Beta 2. I thinks it’s a killer product. It holds up in a lot of new areas. It works well on Mac, on Linux and works well in Windows as always.On labs, there are two things in particular. I’m really excited about the efforts on mobile were working on. I think a lot of folks wondered what about what we’re going to give mobile. And we’ve waited for a pretty long time. But we really felt like we needed to wait until the industry started to open-up a little bit.
We are trying not to overload users with a lot of new features. We’ve done a lot of stream lining. A few years ago we cam out with Firefox 1. It was a good’s a good product, but it was 1.0. With Firefox 2 we started adding a lot of what people were expecting. And then I think Firefox 3 really represents a streamlining and a maturation of the user interface. But it really means it fits into the Mac. The Macintosh theme really works. We have Linux system integration and icons. I think that it’s going to feel like a much better product to people, especially people who give you aren’t
so techy. But I think it will retain all the openness that the techy population, like myself, like.The one featured that everybody really likes, other than the fact that the memory usage is better than ever and the performance is better than ever, is
the URL bar.
Instead of just typing the URL and having it remind you what the URL is, you can type any word in the name of the document. Like if you went to a site about the Simpsons, you could just type Simpsons in the bar and it will show you all the sites with Simpsons in the title. And it’s just one example of maybe 15 different ways we’re helping people find the places they’ve been to before or the place that they want to get to. So I think navigation around the information space is getting increasingly important. The web is pervasive or humungous and getting larger. And just being able to find what you want, find what you’ve visited is the key. So I think that the colloquialism around here is to call it the awesome bar instead of the URL bar.
That’s just one example of hundreds of hundreds of user interface tweaks that we’ve made. And I think are going to make a little difference to people.
So I suspect that we’ll start to participate DataPortability.org. They’ve got to start doing something sooner or later. So like doing the actual work there is going to be the key. Of course OAuth and that kind of stuff we’ve starting to experiments with. That stuff will be very important for Weave. So I suspect we will start to participate in dataportability.org, but we haven’t yet.
Rob Sanheim sat down with Zed Shaw at RailsConf and had an hour long conversation with him that covered his thoughts on the Rails community, the role of the Enterprise, the state of Ajax, JRuby and Rubinius, documentation, tests, tooling, the role of patents in software, and a whole lot of opinion.
It is very interesting to listen to this after the explosion that happened when Zed lambasted the Rails community. When you listen to this interview, you see some of the seeds of the rant, but it is a lot more toned down, and there is some good stuff in there. It is easy to blog a crazy rant.... but when you are talking to someone you get a different side of the coin. This gives you that side, from a time when he wasn't as upset as he may have been when he sat at the computer to type up his post.
He got to tell us about the fun implementation issues behind the rewrite. It turns out that the new system is mostly written in Java itself, and there is a very thin bridge to the browser. The JVM also runs in its own OS process, so if the JVM crashes it doesn't affect the browser.
There were also other tidbits, such as having JNLP working natively in the browser, and how this could be used to allow other scripting engines such as JRuby to run in the browser. One JNLP extension, and everyone can share JRuby.
The interview gives us a view into how Gears was formed, and how the three initial components were created.
For example, the WorkerPooler that allows you to spawn a long running piece of JavaScript code in another thread came about as a solution to making sure that the browser wouldn't hand while the Database component would write to SQLite.
In this interview you will learn:
What Google Gears is at a high level
How Google Gears came about
The parts and pieces of Google Gears
Information on the Datastore component (SQLite)
Information on the ResourceStore and ManagedResourceStore components
How the APIs look, and what should I be thinking about as I make my application offline
How to handle versioning with Google Gears applications
How the WorkerPool came about, and why we need to run JavaScript jobs in another thread
The code contributions made back to the SQLite codebase (e.g. MATCH() added)
Google has announced some big news for Ajax developers at Google Developer Day. The announcement is Google Gears, an open source runtime to allow you to build Offline Web applications.
Some may think "hmm, what about Dojo Offline?" The great news is that the Dojo crew were in the loop wrt this project, and Brad has ported Dojo Offline to use Google Gears as the base platform.
This is fantastic news, as it means that Dojo and Google are working together, instead of fragmenting. The end result is that the open Web will end up with a much better offline solution.
We interviewed Brad Neuberg, who is working on Dojo Offline thanks to SitePen.
The discussion was a lot of fun, and covered Brad's thoughts on the offline problem, and how Google Gears and Dojo Offline fit together.
I can't wait to see what the community comes up with, especially to solve the tough syncing problems.
ps. I apologize for the un-produced feel of this podcast. We got to do the interview at the last minute, and wanted to get the content out there for you in a timely manner.