@reiver

How AJAX Saved the Web

Today AJAX is considered to be at the cutting edge of Web technology.

AJAX started out as a name for technologies that made web pages act more like GUI applications. But grew to mean much much more.

AJAX brought a revitalization to web development. It brought back the desktop-application experience to the Web. And in-part brought about the Web 2.0 phenomenon.

But did you know that AJAX saved the web‽

What is AJAX

I have often taken on the role of teacher.

And in the past, while teaching web development and XUL, I often told developers that one of the best kept secrets in the web development craft is the XmlHttpRequest. That many of the cool things done on the web uses the XmlHttpRequest.

Well, since the rise of AJAX, the secret is out. Everyone seems to know about it now.

The name AJAX started out as an acronym referring to web development techniques, centered around the XmlHttpRequest, that allowed web pages to be updated without having to have the whole page reload. The point of this was to make web pages seem and act more like desktop applications.

Today the meaning of the term AJAX has broadened. Today the term AJAX is commonly used to refer to any web development technique that makes a web page seem dynamic. And not just techniques centered on the use of the XmlHttpRequest to prevent page reloads.

Some AJAX elite and faithful will argue that people who use AJAX this way are wrong. That they are misusing the word.

And they may be right. However as far as I can tell, many many people are using the term AJAX to mean something much broader than what the original definition stated.

Most people seem to pay no attention to whether XmlHttpRequest is used or if page reloads avoided.

Most people seem to use AJAX to refer to anything that makes the web dynamic.

Isn't AJAX Just DHTML

There was a time when something called DHTML was at the bleeding edge of web development.

If you are like me. And have been involved in the web development craft for some time. Then you too may have been somewhat baffled by people's usage of the term AJAX.

This thing people were calling AJAX seemed to be what we used to call DHTML.

So why the new name‽

My observation is that AJAX is largely a rediscovery of DHTML by a new generation of programmers, web developers, and software engineers. My observation is that AJAX is a rediscovery of techniques using HTML, CSS, and JavaScript that can make web pages seem dynamic.

My guess is that this new generation of programmers, web developers, and software engineers weren't exposed to the DHTML phenomenon. My guess is that they were probably still in high school at the time or working in other industries.

This new generation of programmers, web developers, and software engineers never really knew what DHTML was. So they adopted their own name for it. They adopted the term AJAX.

Doing it Right

But why did people stop using DHTML in the first place‽

Why were the DHTML gurus shunning it‽ Why was DHTML loosing its popularity‽ Why was DHTML being forgotten‽

Long ago developers realized that DHTML, while powerful, usually came at a cost.

The cost was: loss of simplicity; loss of elegance; loss of semantics; and loss of accessibility (both to the impared and to non-developers).

One of the things that helped the Web catch on and become popular in the beginning was that it was easy for normal people to create web pages.

You did not need a degree in Computer Science to create a web page. You did not need to become a programmer to create a web page. You did not need to be a software engineer to create a web page.

But the shift to DHTML changed all that.

Normal people could not create DHTML. Programming skills were required.

And this was bad! Which is why DHTML was being abandoned.

Many argue (including myself) that programming skills should not be required to create web pages. Not even for web pages that act like the graphical user interfaces (GUIs) found in desktop applications.

What was really needed (instead of DHTML) was a paradigm specifically geared towards creating graphical user interfaces (like those found in desktop applications). A paradigm with constructs like windows, menu, buttons, and scrollbars natively built-in. (The same way HTML has constructs for paragraphs, headings, acronyms, and tables natively built-in.)

After all, what people were really doing with DHTML was creating web pages that behaved like desktop applications.

What was really needed was a simple, elegant, and semanticly rich technology like HTML for creating graphical user interface like those found in desktop applications.

XUL

XUL is a simple, elegant, and semanticly rich technology, like HTML, for creating graphical user interface like those found in desktop applications.

In fact, there were 2 markup languages that were created at around the same time for creating graphical user interfaces: XUL and GladeXML.

As far as I know, they were created largely independent of each other.

While GladeXML looks more like a configuration file, and is NOT meant to be written directly by hand (by normal people or even developers). XUL is.

If you are comfortable writting HTML. Then you should find picking up XUL to be pretty easy.

XUL has elements like <window>, <menu>, <button>, and <scrollbar>. Pretty straight forward right‽

So why aren't we all using XUL in our web pages (in addition to HTML)‽

W3C

Well, from what I've gathered, the W3C -- the organization under which specifications for HTML, CSS, and XML were created -- has been completely stalled! Nothing has really happened there in years.

The W3C is a members only club. And you need alot of money to join. And as such, you can buy control of it.

From what I've gathered by reading mailing lists and blogs, a certain company (Microsoft) wants the Web to become a dead platform. They want it to rot and die. (So that they can replace it with their own technology. So they can replace it with technology they control.)

And have stopped virtually anything from happening at the W3C. No new versions of HTML have been produced. XUL's submission to the W3C never went anywhere. And in fact, things like the W3C's involvement with Atom have been largely symbolic. (A generous gesture by the Atom creators.)

Don't get me wrong though, there's alot of smart people involved at with the W3C. It's just that their hands have been tied, so to speak. They can discuss and maybe even try to create cool stuff, but the web developers of the world will never see it.

Frustration from this is why the WhatWG was created. The WhatWG basically said f--- you to the those stopping anything from happening at the W3C and decided to go about creaing HTML 5 and a paradigm for creating graphical user interface like those found in desktop applications without the W3C.

(Note this tale about the W3C and the WhatWG is based on my memory about what I remember reading in blogs and on mailing lists. I don't have inside information into the W3C, so take the tale with a grain of salt. And feel free to correct me.)

Today the advancement of web technologies seems to no longer be done (or even standardized) at the W3C. And is instead being done at open groups like Microformats.org, Structured Blogging, and even via loosely coupled groups on the blogosphere. (Others groups like these are likely to crop up.)

Things like Atom didn't even go through the W3C, and instead went though the IETF.

XAML

One of the things Microsoft has been concerned over (or some would even say scared of) is people creating and running applications without needing Microsoft Windows.

Around the time when Java applets were popular, Sun's Java gave Microsoft this scare. But the Java threat has largely been eliminated. Have you noticed that Java no longer comes with IE or Windows?

However, there's another much larger threat now. And it's the Web itself.

The Web has evolved into and become the defacto standard platform for creating and running applications.

Today, most new application development is done on the Web now. And as such, Microsoft Windows is being needed less and less. For some people, it's not even needed at all.

From a developer's point-of-view the problem with application development on the Web is that HTML really isn't geared towards creating graphical user interface like those found in desktop applications.

DHTML was a solution to this, but developers abandoned it for good reason.

And although XUL exists, the W3C didn't really do anything with it when XUL was submitted for its consideration.

So.... we as web developers have a problem and Microsoft says they have a solution.

Microsoft's solution is XAML

Now the problem with XAML is that, while HTML will work in any browser and on any operating system, XAML will not.

XAML is really a Microsoft Windows-only technology.

And the risk XAML presents to the Internet community is that XAML could make it so the Web would only work on Microsoft Windows.

The risk that XAML presents is that the majority of websites out there might eventually be written only in XAML. (And not HTML at all.) And eventually, if you didn't pay the Windows tax you couldn't even use the Web.

And that would be bad!

AJAX Saved Us

Now I do not know for sure if XAML would really have replaced HTML as the lingua franca on the Web if it was left unopposed.

But there is a company in Redmond, Washington who seemed to be putting their whole weight behind it. They even seemed to restart development on IE just so they could facilitate this.

And companies like Amazon.com pledged their support of the new Microsoft-Windows-only web based on XAML.

But all the steam behind XAML seemed to die all of a sudden. And it seemed to die because of AJAX.

The rise of AJAX meant that, at the very least, XAML was a hard sell, if not no longer needed.

You see, XAML was being sold as a way to create GUI's on the Web. And despite it being a Microsoft Windows-only technology, some people (like consultants) may have adopted it (and demanded their users user Microsoft Windows).

But when people started creating GUI's with AJAX, there was no longer a need for XAML. And XAML became a much harder sell.

In fact, I'd conjecture that because of the rise of AJAX (and the momentum behind Firefox) Microsoft completely changed the direction of the development of IE7. And stopped it from being a project to push XAML (and other Microsoft Windows-only technologies) onto the Web. And instead actually had to implement Web technologies that have been around for years and years (that they refused to implement before). Like PNG transparency, tabbed browsing, CSS 2, and RSS. And vowed to fix alot of the IE-isms that drive web developers crazy. (Wish they'd implement the data URL and CSS 3 though.)

Conclusion

Although AJAX saved us we still have a problem.

We still need a defacto standard paradigm that lets normal people create graphical user interfaces like those found in desktop application. (AJAX or DHTML or whatever you want to call it isn't the solution to this.)

We still need a simple, elegant, and semanticly rich technology, like XUL (or even XUL itself) that works in all the browsers and on all platforms.

And we need it to be completely cross-platform, open, and unencumbered the way HTML is.

XUL is one possibility. The WhatWG is working on another contender (which as far as I can tell, is using leasons learned from XUL).

Time will tell what will win. But hopefully progress will be made sooner rather than later.

--