Agile Ajax

Ajax and Browsers: Recapitulating the Early Days of Personal Computers

I guess its my turn to spin out historical analogies. Does anyone remember GEOS? That's right, a GUI OS for the Commodore 64. In those early days, everyone rolled their own GUI  (character mode windowing...yum). Some were good, some were bad, some were downright ugly. GEOS was an attempt to bring the unifying influence of an OS that provided the basics of a GUI to the C64, something that Windows brought to the PC and the Mac OS brought from the beginning to the Macintosh. GEOS and the C64 faded away, but the days of the custom crafted GUI were numbered. All that stuff is and should be baked into the OS.

We're in a very similar situation when it comes to the browser and Ajax/Widget libraries and frameworks. Everyone is rolling their own widgets, developing their own DOM and Ajax utility libraries and frameworks. I think the next step should be obvious. Bake an Ajax library into the browser. Can you imagine having Ext already present and available in your JavaScript runtime? Imagine the boon this would be to standardization, code reuse, etc.?

Browsers as the Operating System

My
post from a few weeks ago about how the current generation of browsers
reminded me of Mac OS 7 got me peppered with vitriol. The more
insightful commenters, however, pointed out that I was expecting the
browser to behave like an OS, treating each tab or window as a separate
process, etc. Yes, that's exactly right. We may complain about how
we're abusing the browser into performing a function it was never
intended to fill, or how the HTTP, HTML, CSS and JavaScript are
inappropriate for the task of building GUI's, but there's no use in
crying after what you can't have. We're at a point where the browser
has to act like an OS or face competition from other technologies.

This
is another point where the early PC's resemble the current state of
Ajax in the browser. Although I didn't think of it at the time, Mac OS
7 was Apple's first full blown attempt (the awkward fumblings with
Multifinder in Mac OS 5 and 6 not withstanding) to move from the single
process model of the early PC's to the multi process model that we have
today. In that way they began to resemble the up-market operating
systems of mainframes and minis, such as UNIX, that allowed for the
sharing of really expensive hardware between multiple users.

OK,
anyone remember the real reason UNIX was such a watershed in operating
systems? Instead of the OS being hand-coded in assembly language
against a specific hardware platform, it used a high level language --
C -- for most of the OS code, and assembly language for the small
number of machine specific bit, like device drivers, etc. That was a
huge advance, as it allowed UNIX to be retargeted to new hardware in a
matter of months rather than years.

As browsers and their
plugins change over the next few years, frameworks like GWT (and I
guess the only other ones like it are Morfik and Volta), will have an
advantage in keeping up with those changes.

Technorati Tags: , ,

Comments: 1 so far

  1. I think the analogy of browsers as the machines themselves makes more sense to me. The libraries and available library calls seem more like the OS, since each browser has its own “platform” while the libraries provide the “OS” for it. Having a browser include a library would feel to me like having to use a required OS for a machine - great for those who prefer that environment, but crippling to those who prefer another.

    For example: I can use Dojo in Firefox, IE, Opera, Safari, etc. just as I can use Debian on AMD64, Intel x86, PowerPC, etc. Once I install the OS, it acts (more or less) exactly the same, because it has abstracted the hardware from what I write as a software developer. Ignoring the exceptions that can and do pop up there, I can use Dojo in the same way.

    Firefox already has a “built-in” OS of sorts in XUL. IE has ActiveX. The issue there stems from having the library tied to the browser, and the lack of portability limits the value for developers.

    The current issue that I see stems from each web application having to essentially do a net install its OS every time it runs, similarly to imagining each software package having to run in an included virtual machine. I don’t have a suggestion for how to solve that in a way that doesn’t completely piss off the users and browser vendors alike, but maybe I’ve just taken the OS + platform analogy a little further than I really should have.

    Comment by Shawn Lauriat, Friday, December 21, 2007 @ 11:20 am

Leave a comment

Powered by WP Hashcash

About Pathfinder

  • We design and build extraordinary applications for companies looking to make the next great idea a reality.
  • learn more

Topics

WordPress

Comments about this site: info@pathf.com