The state of the web

I was going to post about AIM 'bots (and before that, I was going to post about gasoline taxes and congestion pricing and other economic disincentives against driving [and before that, about Congressional redistricting]), and maybe I'll still do all that. But Alice sent me an email a earlier tonight, and I very much enjoy putting email on my blog.

thought you'd appreciate this:

I'm having Thanksgiving with friends, and I asked arrogantly if I could bring Boggle. Then I read your blog. Now I'm not so sure of myself since my confidence has been destroyed by Weboggle. Thanks a lot. (To be fair, maybe my friendships will be saved by this intervention)

The anecdote about dubious spelling is entertaining, but what really caught my eye is the Scrabble for onanists linked to from that blog post. It, along with WEBoggle, are two examples of really nicely done dynamic HTML/AJAX-y web applications. The emergence of DHTML/AJAX as as a viable application platform is rather unexpected, I think. Off the top of my head, here's a rundown of (intelligent) web design's evolution:

Initial, really initial, websites were vanilla HTML. And HTML 1.0 didn't really offer much other than simple font formatting and hyperlinks–which, in retrospect, was enough to make it an extremely useful language for markup and organization. The set of meaningful tags in HTML has expanded over the years, but the basic idea remains the same.

In the mid-90s, before Microsoft "got" the Internet, Netscape Navigator was the web browser of choice on all platforms, and in addition to supporting basic HTML, Netscape developed a programming language called JavaScript (née LiveScript), and embedded an JavaScript interpreter in Navigator. JavaScript code is client-side, which is to say that web designers write programs that are executed on your computer, within the context of the web page you're currently viewing. (Contrast this with server-side code, such as the programs that run on Google's servers each time you search for something.) Web developers immediately seized on JavaScript as a way of pissing people the fuck off with blinking, scrolling text or windows that resized and moved, and anyone who knew how went and disabled it in their web browser to avoid the nuisance.

A bit later, Sun Microsystems developed a programming language called Java, which was nifty and modern and accessible, at least when compared to the languages that came before it. Java's used for all sorts of things, from server-side web programming to desktop applications to software on some cell phones. It can also be used to write software meant specifically to run client-side within the context of a web browser–such Java programs are known as applets. (Java applets have nothing to do with JavaScript–Netscape rebranded LiveScript to JavaScript to capitalize on the Java* buzz.) Java applets suck, as anyone who has ever tried to do a live fantasy baseball draft on could tell you. They take an awful long time to load (your computer has to download an often large piece of code from the web server, and then initialize a virtual machine within your web browser in which to execute the code, and then you have to wait for the code to actually run). Java applets are often very, very ugly, because the user interface widgets in most Java Virtual Machines are very, very ugly. But when Java applets hit the web design scene they were revolutionary, as they provided users with an interactive, bi-directional user experience within a web browser, albeit a slow and ugly user experience.

Macromedia, another big software company, wasn't content to let a bunch of nerds like the Sun folks capture the potentially massive interactive web platform. They had an existing multimedia development environment called Director (which was, in my opinion, just a HyperCard rip-off, but the entire world wide web is an HyperCard rip-off when you get down to it). Director was already being used by a bunch of creative types for making creative-type-things (including the PC version of the first Myst), and Macromedia had the bright idea of rebranding Director as a web platform. They named this Flash, and released plugins for the major web browsers to host Flash content, and it gradually became ubiquitous on the web. While there's certainly slow, ugly Flash content out there, the Flash platform is, in general, better suited for interactive web content than Java applets are, and Flash pretty much killed the applet.

Somewhat orthogonal to the web side of things was the emergence of XML as something big. XML is an (extensible) markup language, which means it allows you to structure data and apply meta information to data and pretty much fondle data any which way you'd like. Technologists get horny over XML. Despite the fact that XML is a direct subset of markup languages development in the '60s, developers only really began to appreciate the elegance of XML recently when all the computers in the world got linked up–instead of trying to teach one computer system to speak the language of another computer system, XML provided a straightforward way of creating a brand new markup language that both computer systems could be taught. HTML is itself a subset of XML (well, if it's written properly it is). This HTML-is-XML point is important: all the "cool" things developers were doing with XML (XSLT, DOM manipulations, XPath queries) could be done with HTML documents as well.

JavaScript, once considered the ugly red haired bastard stepchild of web development, proved to be the technology that linked the flexibility of XML with web design. All modern web browser include updated JavaScript environments that allow for DOM/CSS manipulation and XSLT. They also include methods for supporting XMLHttpRequests, which allows a piece of JavaScript running client-side to contact a web server and submit information or request new information–something that previously required navigating to a new web page, but now could be done seamlessly within the context of the current page.

DHTML/AJAX really caught the attention of the technology hivemind when Google started rolling out one new web application after another. GMail, Google Maps, and Google Reader are all very impressive web applications powered by JavaScript, as are the previously mentioned WEBoggle and Scrabble solitaire. You previously couldn't get any serious technologists to do web development if you paid them, but the AJAX programming model has the technology community in a tizzy and people are clambering to do web development again (assuming you pay them).

AJAX-y web applications are so big right now, and Google is so good at writing them, that Microsoft apparently is freaked out about the possibility that Google will hit them where it hurts and develop a suite of office applications, delivered as web applications, presumably supported by advertising. (There are already several AJAX-ed word processors out there.) Google certainly has the computing power to host something like that, and it's just about the perfect storm for Microsoft–not only would it mean that people wouldn't have to buy their Office suite anymore, but it also means that people wouldn't have to buy their Windows operating system in which to run Office anymore (yes, Office already runs on Macs, but that's not the point). The world would be one step closer to being operating system agnostic, which is exactly what you don't want if you have a virtual monopoly on desktop operating systems.


  1. Wait, aren't you the one who suggested that if one more major operation was taken over by Google they'd own us? Or something only slightly less dramatic?

  2. Well, I'm one of the people how have suggested that, yes. I don't mean to say that it would be a good thing if all our office documents lived on Google's servers, just that it's something that Microsoft is (rightfully or not) worried about.

  3. Either way, the machines have won.

  4. This details some of the positioning that Macromedia is doing to make sure that Flash stays relevant for web development.

  5. Hi Jeff,

    I hope you don't mind me correcting a few details about the HyperCard/Director era. I doubt they change the meaning of anything you have written.

    Director was not so much a copy of HyperCard, but a different idea about what multimedia was about. Whereas HyperCard was about interactivity, Director, which grew from an animation program, was about combining media into presentations. Interactivity was only an add-on, arguably in response to HyperCard.

    Some of us were not fooled and used HyperCard and its progeny (SuperCard in particular) through the early 90s.

    A few years later the web came along.

    Director was more mature (although I was not a fan), and HyperCard was being mishandled by Apple.

    MacroMind then created the Shockwave plug-in so that certain kinds of Director files could be deployed online, with mostly bitmap art.

    Meanwhile, another plug-in was vying for people's attention, called "FutureSplash Animator", which used vector graphics to keep file sizes small, but was not as robust as Director when it came to scripting.

    FutureSplash was bought by MacroMind and its name was shortened to Flash. Since then the company has maintained the two environments, but Director and Flash have never been one and the same tool.

  6. Kevin,

    Thanks for the clarification (though did Macromedia really change their name to MacroMind or was that just a typo?).

    I cut my teeth on programming with HyperCard back in the mid-90's, and hadn't really followed what was going on in the Director space, though I knew Lingo bore many similarities to HyperTalk. I agree that it's a shame HyperCard was basically thrown away, as a smart cross-platform play by Apple when the time was right could have been a real win. I do some GUI work in Visual Studio.NET now and then and while Microsoft has done a surprisingly decent job at facilitating rapid GUI development, I can't help but think that Apple did it all 20 years ago...

  7. It was MacroMind, then became MacroMedia. I can't actually recall when they lost their mind and the media became the message, but I would think it was sometime around version 3 or 5...

    Meanwhile, Supercard still survives as a mac-only rapid-app development tool and Revolution exists as a multi-platform HyperCard descended tool. While it is a bit of a mess of windows and palettes as a development environment (but I guess many things are) it returns to HC's roots with a run-time message box that makes scripting very interactive.

    The fact that HyperCard progeny have survived to find new (but niche) life really makes me wonder what would have happened if Apple would have delivered a cross-platform net friendly HC in the mid 90s.


Post a Comment

Popular posts from this blog

Are you acquainted with our state's stringent usury laws?

Eddie Vedder is Still an Incoherent Drunk

A hotline, a wanted ad