Bill's Computer Circus
Don't get caught with your system down.
NOTICE: This web site may not render correctly in older browers like Internet Explorer 5.2 for the Mac. May the gods help you if you are using Internet Explorer on any machine! Otherwise, if this site does not look right on your browser, please let me know what browser you are using (and what version and on what computer). Thanks!
"Visual Basic makes the easy things easier. Delphi makes the hard things easy."
-- unknown
Wednesday, July 26, 2006
 
What Ajax Really Is
When I moved to the fringes of Silicon Valley (just down the street from Oracle) six years ago, I started my first real job in Web development. I had spent my entire previous history in desktop application development, so this was quite a switch for me. I felt like I had taken a big step back in time, to the days when the mainframe was about the only kind of computer there was, and ADM3A dumb terminals were king.

Dealing with JavaScript across various browsers was horrible. Even interpreted BASIC on a DECsystem-10 mainframe computer was easier to use (the photo looks exactly like the system I once used, complete with the LA-120 dot matrix data terminal).

After dealing with that for maybe a year and a half - about as much as I could stand - I went to work for another company called Virtio where I was back in the desktop world, doing more interesting things. Among my accomplishments there, I pretty much single-handedly created a working simulation of a MIPS Malta embedded systems development board. Essentially, my job was to use the desktop computer to create working simulation models of other computers (typically ones with embedded processors used in various platforms such as cell phones and PDAs).

Try doing that in JavaScript.

My departure from there was timely, as I was approaching burn-out and was looking for something different to do. The company cut back and my job went away as a result, so I was free to pursue other interests. I returned sometime later on a contract basis to create quite a few more new peripheral models that they needed for some other simulation platforms, and then my participation there came to an end.

After nearly two years, I realized that computers were all I knew and couldn't figure out what else to do with my life, and I was running out of money, so I decided it would be a good idea to go back to work - despite my lack of desire to ever sit in front of a computer again.

My wife managed to sing my praises at the place where she works, and that led to me getting a job there. So, now we work together. That's a topic for another blog, but now I am working once again in the world of Web development. My thinking was that things must be much better now, six years later. But, to my chagrin, I have discovered that nothing has really changed all that much.

Oh! But now there is this "new" thing called Ajax that promises to bring the world of Web based applications closer to the rich interactive functionality that we've all become familiar with in the desktop application world!

Supposedly.

I wonder if people who have been using Web-based applications for the past six years even remember what the desktop is and how it works. After all, the desktop represents a leap of about 30 years into the future from a Web technology perspective, and I have to wonder if all these Java people even know what an IDE really is.

It has been the primary focus of my new job for the better part of this year to do nothing but research "RIA" (Rich Internet Application) technologies. Joy. What fun. It's not a job I would have particularly chosen, but I certainly have learned a lot, and have also found a considerable level of confirmation in the process. The ultimate conclusion that I have drawn (which is really just a confirmation of what I have suspected all along), is that the entire infrastructure that is built around this idea of the World Wide Web, as we know it today, is a hack.

All of it.

Here is how I have come to describe this new thing called "Ajax", which is really nothing new at all, but rather a new name given to a collection of aging technologies in order to create a new buzz:

HTML is a hack for disparate computers and operating systems in an attempt to get them all to render published content in a consistent manner – much like printed pages in the print world, which is where the idea of HTML came from and was derived from.

JavaScript is a hack to get around the limitations of HTML – namely the primary intention of HTML, which was to display static content. JavaScript mimics dynamic behavior my modifying the structure of an HTML page after it has been rendered by the browser.

XMLHttpRequest is another hack to get around an inherent, primal, core limitation of the HTTP protocol. HTTP is a stateless protocol, predicated on the principle of retrieving individual and distinct documents. The nature of HTTP and browser behavior, by its original design, is to request, retrieve and display documents...one at a time. XMLHttpRequest allows this request to be done in the background, with the received document loaded into memory instead of automatically replacing the current rendering. Typically, this call is made to load XML files, usually generated by a query executed on the server.

The JavaScript hack is used in conjunction with the XMLHttpRequest hack to modify the structure of a rendered HTML page to make it look like some piece of the page just loaded new content. This is the sort of behavior that gives people the [mis]conception that the application now works just like a desktop app.

In summary, Ajax is a brick house built on a foundation of toothpicks and Popsicle sticks, with a two-way radio and a robot installed to rearrange the bricks.

I have created hardware simulations and I have developed desktop applications and I have worked in truly RAD IDE tools, and I can say with all certainty that the Web is nothing like the desktop. And as long as it is built around this HTML/HTTP concept, it never will be.

I guess that's why technologies like .NET and Flash have emerged. They still make use of HTTP and other protocols, but at least they're able to actually make use of the desktop computer that the client code runs on! But getting people to change the way they think, and to get them out of their rigid, stubborn mindsets about all these standards and open technology that is associated with Web browsers, the Web will forever continue to look and operate like, well, the Web.

This is the 21st century! Let's start acting like it! At least let me add some color to my ASCII art!

posted by Bill  # 11:00 AM
Friday, July 21, 2006
 
Ajax is Not an Acronym!
Get over it, people! Ajax is not an acronym! Ajax does not stand for "Asynchronous JavaScript And XML!" Somebody made that up, based on a presumption, and somehow it stuck. Kind of like the name Ajax, itself.

Why "Ajax"? WHO KNOWS? It's just some buzz word some guy conjured up while taking a shower. The best way to give old technology new life, I guess, is to give it a name. Hence, Ajax was born.

Ajax is nothing new. It has been around for a while. At least the core enabling technology has. Someone just thought they could take this one little asynchronous function (XMLHttpRequest) and do wild and crazy things with it. It kind of reminds me how someone must have looked at the web browser - which was originally designed for the sole purpose of displaying static content reasonably consistently across operating systems - and said, "I want to interact with that - make it dynamic."

God, it's amazing this crap has come this far and survived this long. HTML, CSS, JavaScript, and now - holy shit - Ajax! Oh, wait...all that other crap IS Ajax. Well, but now that we have Ajax, we can do SO MUCH MORE WITH THIS ILL-EQUIPPED BROWSER which is based on technology that never should have survived.

Do yourself (and the rest of the world) a favor - install the latest Flash Player, download Flex (and buy the Flex Builder if you can afford it), and start using something that makes sense. Flash Player is Flash Player, regardless of where it is installed. If you create content for Flash Player, it will (or should!) run wherever Flash Player is installed - even in a crappy old web browser from last century.

I am SO SICK of the direction all this Web based crap has gone, and I am SO SICK of people harping on the open-source and "standards" issues until they're blue in the face. Let's stop cutting corners and start using shit that works and makes sense!!!

</vent>

posted by Bill  # 6:00 PM