Java vs. .NET, part 1 - Usability
Microsoft has the upper hand on the usability front
This Blog entry is the first in a series in which I plan to analyze the challenges that Microsoft .NET poses for Java and explore ideas for overcoming those challenges.
Many people love to rail against Microsoft products, saying how bad they are. And there is a sense in which this is justified: many Microsoft products are not as robust and scalable as some other products, and perhaps they dont have all the conveniences for system administrators that other products do (at least they dont in early versions).
But lets face the hard facts, folks: Microsoft user applications rule. They are slick, they are sharp, they have tons of great features. Users like them -- overwhelmingly. Here is what one disgruntled CIO had to say about Microsoft product usability vs. that of the Linux community:
McCourtney added: "Microsoft is just more functional and useful. They actually
conduct usability studies to see if people can intuitively use their apps. I don't recall any postings on SourceForge in that topic area." And if there are, I'll bet they say something like, "Users are dumb! They don't DESERVE to run Linux!!"
And its not just Microsoft applications. It is the Windows operating environment and all the ISVs who natively write to that environment. Microsoft sets the style and the ISVs (to one degree of success or another) follow that style, locking in the Microsoft leadership.
Please pardon me for saying this, but most Java apps look shabby compared with other desktop apps. Java now has a reputation for shabby-looking apps on the client-side. Swing was supposed to address this and has failed. IBMs SWT comes closer but still hasnt really challenged native MS technologies on the client. I am encouraged by Alan Williamsons review of Juliette as a project that takes the UI seriously, but they apparently had to provide their own GUI layer!
There was hope a few years back that the Web would change this equation. The expectation was that all applications would move out of the native environment into the browser, where they would be much more intuitive than that complicated Microsoft stuff, and of course would be powered by server-side Java.
Well, although many apps have moved into the browser, usability issues haunt those Web apps badly. Many Web app projects have become shelf-ware. The Web architecture has been sold to the CIO (and possibly CFO) as a way to reduce costs and increase flexibility; and the potential for that is real. But there has often been tremendous push-back from users on the sluggishness and low usability of those browser apps. For day-in-day-out usage, users generally prefer the experience of their old client/server or desktop applications. Amy Fowler gives a great example of this for the consumer market. (And by the way, who controls the browser?)
The non-Microsoft camp likes to claim that MSOffice is so popular simply because it is often bundled with new PCs, and there is no doubt that plays a role. But it is also the case that Office and other Microsoft-based apps are very sharp and highly usable for the vast majority of users. We must take product usability very seriously to make inroads against Microsoft domination.