Posted on Wednesday 17 May 2006
Replacement office chair suppliers in the Redmond area must be smiling today. Today, Google announced the release of the Google Web Toolkit which allows you to write code in Java and convert it into AJAX that can run in any browser as a web application. To me, this is a potentially huge development that could represent a turning point in software.
In theory, writing web pages and apps should be write once, run anywhere since open standards have been defined. However, if you’ve ever tried something as simple as using style sheets, you know that practice is a completely different story. Every browser has its own little quirks and none are 100% standards compliant. Thus, something as trivial as specifying how many pixels a text area on your page should be can become a huge ordeal.
I’ve never learned AJAX, but I can imagine that it’s orders of magnitude more complex than style sheets. One of the main advantages of AJAX is it allows you to create dynamic web pages that don’t need reloaded every time the content changes. If you’ve ever used GMail, Google Maps, or Yahoo!’s new mail or map applications, then you’ve seen AJAX in action. It’s one of the current building blocks for the web applications that you see popping up everywhere.
So, in a way the current state of web app development is like desktop app development used to be when you had to write everything in a low level language (e.g., assembly). Anytime you wanted to run the code on a slightly different architecture, you’d have to a non-trivial amount of time figuring out the quirks of the new platform to get your code to run. Eventually, we got really good compilers so most developers only have to work in high-level languages (e.g., C, C++, Java) without worrying about the gory details of the underlying hardware. Similarly, web app developers today have to spend a lot of time hammering out the rather unpleasant details of how to write web code that will work on any browser (e.g., Internet Explorer, Firefox, Opera, Safari) rather than concentrating on higher level code.
Enter the Google Web Toolkit. This lets you write code in Java, a language that any computer science student should know, and they provide the “compiler” that translates this high level code to something that can be used as a web app by all the major browsers.
So, why would Microsoft not be too keen on this latest tool by Google? Well, it provides a major incentive for application development to move out of Microsoft’s territory (the desktop) into Google’s territory (the Internet). I think this is Google’s goal: to enable the web as the predominant application development platform. Anything that encourages users to create content that Google can more easily index. After all, that’s their business…organizing content effectively.
As a developer, it makes a lot of sense to release web-based applications. For one thing, there’s no installation necessary by the user. And, patches and upgrades are trivial since they’re done behind the scenes without the user ever knowing. The main disadvantages are that you have to be online to use them and there’s not exactly a tried and true business model for them yet.
But fundamentally, Google is opening up a divergence with Microsoft in this arena. Whereas MS would like to beat developers over the head with their .NET and Visual Studio sticks to force them to use their platform, Google wants to make it as easy as possible to create content accessible to any platform since indexing that content is their business. For Google, they don’t care how you create your content as long as it’s presented such that they (and competing search engines) can index it. By contrast, Microsoft’s mantra is “We do care about how you create your content and strive to make it in a manner that locks you into our products” (think Office). You can see that (1) Google is breaking Microsoft’s business model, (2) users are trending towards the Google model, and (3) Microsoft doesn’t seem to have a clue what to do about it.
As mentioned in a previous post, maybe Microsoft’s best bet is to focus on becoming the OS and browser leader in a new market of thin clients. No matter how web-based stuff gets, you’re always going to need locally installed software to access the web applications (at least for the foreseeable future) and MS is well-poised to be the leader in that market. Or, they could just drop the OS, office, and browser markets all together and focus all their efforts into the gaming market since XBox and XBox Live seem to be about the only positive the giants from Redmond have going for them these days.
Tags: ajax, Business, google, microsoft, Science and Technology


