Microsoft Windows is still amazingly ubiquitous. To a good approximation, everyone uses Windows. The actual figure is above 95%, measured by people’s browsers. (Compare this to opinion polls: nothing ever gets 100 % support. There’s always the 3 % who don’t agree to anything.)
It may therefore come as a surprise that two Gartner analysts are quoted as saying that Windows is ‘collapsing’ (also here). The Windows software platform is too bloated and inflexible to be competitive, they say, not least because of backward compatibility. The Windows codebase is Microsoft’s Iraq – a quagmire.
To those woes can be added Microsoft’s relative absence in the web space. I, for one, don’t use any of Microsoft’s web services. Not because of any ideological opposition, but because they’re not competitive. I try Live Search from time to time, to see how it stacks up against Google. It doesn’t. HotMail versus Gmail – puh-lease. I even signed up – in good faith – for Office Live when that came out. Nice try.
That’s why Microsoft really needs Yahoo. People live their lives inside their browsers these days. True, the web does not yet solve all the problems that desktop apps do. I don’t know how many people do their video editing online, for instance. And Microsoft maintains its stranglehold with Office. But check out some of the features that are coming out on Google Docs: offline access, email notifications, gadget integration, and form support. The latter lets you publish web forms that submit directly into spreadsheets. Pretty cool. So Google is not only copying Office, they’re adding innovative, web-enabled features. Stiff competition on the horizon, in other words.
But don’t underestimate market inertia. It’s going to take time to eat into Microsoft’s market share. With 95% market dominance, rumours of Windows’s imminent death are clearly somewhat exaggerated. I have a feeling we’ll be having much the same discussion in 10 years time.
April 8th, 2008 - Category: Misc | Comments Off
The market for outsourced application hosting just got a whole lot hotter. Google has launched Google App Engine, which lets you host your own app in Google’s infrastructure, taking advantage of highly scalable services like the Google File System and BigTable.
This competes head-on with Amazon‘s suite of web services. Google’s offering will be attractive because it does automatic scaling and load balancing. While Amazon-hosted apps are easy to scale, you have to roll your own load balancing, and that requires a little fiddling. With Google, it looks like you need not worry about scalability at all.
On the other hand, an application-oriented hosting service will likely be more limited than a server-oriented service like Amazon’s. Most likely, there will be a few limitations on which libraries you can use. For instance, they do not currently support threading.
So far, it’s Python only, although the platform is meant to be language-neutral. The question is: when can I upload my Java .WAR file?
April 6th, 2008 - Category: Google | Comments Off
Google Analytics is a free web site statistics package, and a pretty indispensable tool for the webmaster of today. By injecting a small tracking script into your site’s HTML code, you can monitor your web site’s visitors in many interesting ways.
Other things you can count and report on with this nifty feature include:
- form submissions
- which outbound links are clicked on
- file downloads like PDFs, which do not show up in reports otherwise
- user behaviour on shopping cart pages
Check out this article explaining how to add the requisite code.
“Do you want to save your changes?” How many times a day does your computer ask you that question? Most programs do when you close them. When you ask Windows XP to shut down, the process takes a good minute extra because of all the programs that bug you about this. And it’s all utterly pointless.
Back in the day when storage had a non-trivial cost, both in terms of the space and the time expended to store files, the question made sense. And it might still make sense in some cases. But for the majority of cases, there is a better option. That option is versioning. With versioning, every change is always saved, and the user moves easily between versions.
Some companies have seen the light long ago. When I started using IntelliJ a few years ago, I was initially baffled at the lack of a Save button. Then I discovered that it was all done in the background, and that version management meant I never had to worry about saving again. Similarly, most of Google‘s products (such as Gmail) take care of saving for you. To an extent, this is because they’re on the web, and Google wants to make sure that you never lose data in the fragile environment that is the Internet browser. But the same philosophy is at work in Picasa, their desktop application picture manager. There, the Undo button has basically taken over for the Save button. The result is a form of version management.
Full-blown versioning takes a little time and effort to incorporate into a program. However, the ability to maintain drafts goes a long way towards doing the job. When I close a program, I shouldn’t need to make decisions about saving. Instead, the program should maintain drafts of the files I have modified. When I reopen the program, the drafts should reappear.
Unobtrusive mechanisms for maintaining state is what it’s all about. Taken a little further, the principle can be applied to all our interactions with a computer. Booting up, opening and closing programs and files is still done in much the same way as it was 20 years ago. And the way these processes were designed was heavily influenced by constraints that no longer apply. With the increased speed and reduced storage costs of today, software makers have the luxury of designing programs based on how the user naturally thinks. That means never asking the question “Would you like to save your changes?”