JavaScript Applications vs Ajax

Posted by charles at January 08, 2007

I said in the video preview that Mailroom 2 is a JavaScript application (or a “JSApp” as I sometimes call it.) When I said that, some of you probably thought what I meant was this thing called “Ajax”, but I didn’t. JSApps are far more revolutionary that Ajax. In fact, I think they are going to be a major factor in the adoption of web apps in the future.

Let me explain why.

While Ajax’d apps can make sites a lot easier to work with, JavaScript applications go beyond mere web page and turn the web browser into a full-fledged client. JSApps can be faster, more dynamic, more powerful, and vastly easier to use.

Let’s take one of the best designed Ajax web apps on the web as an example. Basecamp is a great web app for managing projects. You can write messages, add todos, milestone and more. Even though Basecamp uses some Ajax to add some neat effects to their pages (especially when working on Todos), you still will spend a lot of time waiting for pages to load when you use this application.

Each click…to visit…a message…or a task…requires…waiting…for a page…to load.

Even with a fast server, the simple fact is that waiting for pages to load creates dead cycles. It interrupts your flow of thought, taking you out of control and putting you at the mercy of your wifi connection, big telcos, our servers, and other customers to decide how fast you get to work.

Up until now, this has been a simple fact of the web. If you want something more rich, you would often resort to technologies like Flash that are not as native and require plugins. Thankfully, modern browsers running modern JavaScript engines have become so commonplace that its finally OK to make JavaScript a part of your product requirements and that is making a new type of product possible: the JavaScript Application.

A JavaScript application like Mailroom does away with the whole page loading concept altogether. Instead, you load your page just once when you first visit Mailroom. After that, everything is done right there in your browser.

Unlike an Ajaxed app where JavaScript is used to enhance a page-based experience, the JavaScript application is driven almost entirely by the JS on a single page. It is leaps and bounds faster and richer to boot.

Thanks to caching and other behind-the-scenes work, in fact, it is possible to almost entirely decouple your client experience from our server. That means that as you use Mailroom, you won’t spend much time waiting on data to go over to the internet. We do that all in the background so you can keep working.

Mailroom is certainly not the only JavaScript Application out there. Zimbra have been doing this for years longer than we have. But we do hope that Mailroom will be a shining example of what JSApps are capable of, and why we think they are the future of web apps for business in general.

Mailroom 2 is almost ready. I can’t wait. Really. It’s like being in the 9th month of a pregnancy without the pain and bloating.

Comments

Leave a response

  1. Gravatar
    NirJanuary 08, 2007 @ 07:31 PM
    Sounds cool :) How do you handle JavaScript compatibility issues different browsers/versions?
  2. Gravatar
    MarstonJanuary 09, 2007 @ 02:11 AM
    Yes, definitely interesting. I'm curious though, did you have to redo the app from scratch? I know it started off as a Rails App. Is it now 100% JS? How has the switch changed your server setup?
  3. Gravatar
    Charles JolleyJanuary 09, 2007 @ 08:30 AM
    Marston: Our servers still run Ruby on Rails. But now we have written a bunch more JavaScript that runs in your web browser. In many ways it was like writing a new app from scratch, but we didn't have to start over. We just added a lot. Nir: We actually wrote some compatibility code to let us work in multiple web browsers. We also use prototype, which take care of much of that for us.
  4. Gravatar
    lazy_coderJanuary 14, 2007 @ 06:05 PM
    Isn't one big drawback when it comes to creating pure JS applications the fact that the complete source code of the application will be available for grabs to anyone through the internet file cache whether you want it or not? If you use server-side languages to the largest possible extent at least you will keep the source code somewhat safe, at the expense of more client-server traffic, but if it's a closed source application, what other choice do you have?
  5. Gravatar
    DaveFebruary 09, 2007 @ 01:31 AM
    Apologies if this seems like a stupid question, but I don't quite get the differences with "JavaScript Applications vs Ajax" from your description. From what I gather, is your application through the use of rails and protoype not just a fully featured one page AJAX application. Is this just a clever naming technique, moving away from the AJAX, Web2.0 buzzword?
Comment





Inbound link count provided by Technorati