Tuesday, June 10, 2008

Is this it for Windows?


So since Vista's release, Microsoft has been having problems, but I've noticed a convergence of a couple of trends in my life. I think these trends, and my participation/consideration of participation in them signals trouble for MS. I'm sure I'm not the first person to say this, but I feel I'm more of a "regular consumer" than I am a technophile - or at least less of one than most and this puts me more in line with what "most" people are going to do... That being said - here are my observations:

1) The rise of web application. Lately I've noticed how you barely need applications on your desktop. Web apps are so rich that most of us can use them for what we need and never have to install anything. Photoshop Express, Google Docs, Google Calendar, Animoto, the list goes on and on. I'm sure they will not replace hardcore installed functionality, but it is like the electric car. It isn't for everyone, just 90% of the users.


2) Apple's Halo Effect. The oft mentioned halo effect of the iPod/iPhone has people running to buy a Mac. I was even considering this, until I looked at the price. Regardless, people love Apple's design and what they are doing with their OS. Also, the iPhone's new SDK sounds like it is going to wipe the floor with every other cell phone SDK, furthering the halo effect.


3) Rise of Linux. I'm not the first person to get Linux, but I'm probably one of the first "regular" people to do so. My old XP machine was a slug on XP (P4 1.4gh w/ 512mb ram), but with Ubuntu and Firefox it is blazing fast! Now, getting all the drivers can be a pain, but now I use that computer! Also, combining this with #1 - there is no real need for the MS compatible apps because they all work in Firefox. All the problems I've had have been solved (almost) by the huge community of people who back the Linux framework. People spend their time on this in a huge way. I've had problems installing Real Player and Netflix on demand doesn't work - but it is a trend, not an endpoint.


So what does all this mean? It means I have a narrow field of vision and I'm certainly leaving some things out, but hey - it is just my viewpoint. Either way, I think we're trending away from MS. People are getting sick of a 5 minute boot time and all the hassles of Windows. People are starting to look at alternatives, and in the case of Apple - they're voting with their dollars. In the case of Linux, they are voting with their time - which is money, right?

If these trends continue, and I think they will, I can't see how MS will wiggle out of this without having Windows 7 be the best OS ever.

2 comments:

Lilac - Like The Flower said...

welcome to the logic of disruptive innovation....

Capt. BS said...

1.) The 90% figure is the key to keep in mind. As someone who does a lot more desktop application development than web application development, there are definitely some reasons why rich desktop applications will stick around for a long time, and many of them have to do with the limitations of what you can do with HTML, Javascript, and the other tools that a web browser provides (which isn't very rich). One that often gets overlooked is that, with a hosted web application, you're forced to live with whatever version/features/subscription model that the host decides to use. If one day they decide to upgrade to a new version with a completely different UI, new file format, and higher subscription rate, you have no choice but to go along with it or find something else (which could be disruptive in a business environment). Also, it seems like many people are succumbing to the fallacy of polarity on this topic -- that an application can either be a desktop application or a web application, but not both -- kind of like with the supposed "science vs. religion" debate largely created and perpetuated by the popular media. There's no reason why you can't build an application on top of a services-oriented architecture (e.g. with Web Services) and host it within a thin client that's not necessarily a web browser. This thin client could access local system and network resources (and could potentially be used offline), but most of the application logic and data storage still lives on the server, so you're still essentially using a hosted application service, and if the thin client is written in Java, Flash, or (arguably) a .NET language, it's still going to be cross-platform.

2.) The only mobile development platform that can compete with the iPhone SDK is the Web. (Both J2ME and BREW are clunky beasts that are difficult to develop for, and given that many carriers will configure their phones to support one and lock out the other, they're both essentially dead as platforms.) Given that mobile web browsers are converging with (and sometimes being replaced by) fully-functional web browsers (with the ability to run JavaScript, Flash, and other plug-ins), it's a lot more efficient to design a mobile app as a web app and not have to worry about porting it to every possible mobile OS. On the other hand, the iPhone's multi-touch screen gives any application the potential to become graphically-oriented and intuitive in an unparalleled fashion, so any developer looking to make a splash would definitely want to consider making an iPhone-specific version.

3.) That's impressive that Ubuntu runs that well on your old desktop machine. I think the only thing holding Linux back is the very thing that is its greatest asset -- its open-source nature and its developer community. Whereas Microsoft or Apple don't give developers much of a choice in terms of system-level APIs (e.g., a Windows TextBox control will support these 20 properties and events, but no others), with Linux there is almost too much choice. Even if you choose Perl as your language of choice, you still have about ten different UI widget packages to choose from, each with their own advantages and drawbacks. And behind nearly each choice is a religious war being waged within the development community over which package is better, which one should or shouldn't be included in the next distribution of XYZ or ABC Linux, whether Package X breaks Package Y or Package Y breaks Package X, and so forth. If there ever emerges one solution for a particular need that completely clobbers all of the others, the community tends to converge around it, but this is a long and slow process, and, accordingly, so is the evolution of Linux as a whole. However, I think once someone finally makes a Linux distribution that's truly easier to install, use, and maintain than Windows -- Google, where are you? -- this process (along with the size of the overall Linux user base) will greatly accelerate.