Revolution Time Again
There have been big changes in the way we build applications for the Microsoft platform and more are the way. How should developers react.
"'Revolution' today is taken for granted, and in consequence becomes rather dull."
-- Wyndham Lewis, 1926
Wyndham Lewis was writing about the failures of liberal democracy in an age of political upheaval, big business and technological acceleration, but that sentence might as well have been penned about the current programming landscape.
Poke around the Microsoft Web site and you'll see references to the Unified Communication Revolution, RSS as an Information Revolution, the XML Web Services Revolution, iCampus: the Education Revolution, the InfoCard Identity Revolution, the Wireless Revolution, the online banking revolution and on and on. It seems that we are in a constant state of revolt.
Despite the hype, it's fair to say that we've seen big changes in the way we build applications for the Microsoft platform -- changes so large that they can fairly be called revolutions. There was one when we moved from DOS to Windows 3.1, and another when Windows 95 came out. The release of .NET also falls into this category.
Now Microsoft is ready to upset the playing field again. We're seeing the release of Windows Vista, Microsoft Office 2007 and .NET 3.0 (formerly named WinFX), including Windows Presentation Foundation, Windows Communication Foundation and sundry other new APIs. Applications built for this new world will bear only a passing resemblance to those we've created in the past, even those with a firm .NET 2.0 foundation. Like it or not, another revolution is upon us.
Developers have a choice to make. Stick with the existing platform, migrate to the new platform, or jump ship to something else entirely. No matter how invested you are in Microsoft platforms, you need to think through the decision.
Sticking with the existing platform keeps you productive in the short run, but longer term it limits your reach as customers and departments migrate to Windows Vista, Windows Longhorn and beyond. How quickly those limits develop depends on whether or not Microsoft convinces customers to shift platforms.
Then there's the wild card. Just because you're a Windows developer now doesn't mean you have to stay that way. Mac and Linux systems are viable market niches, particularly in some vertical markets. And Internet programming, which really isn't tied to any particular machine architecture, is growing rapidly.
The Changing Landscape
What's notable is that I'm detecting more uncertainty in the Microsoft developer ranks than I remember from the past revolutions. There seems to be plenty of developers making a living with Microsoft products who just aren't excited by the next wave coming out of Redmond. Some rather prominent developers are talking about sitting this one out, or waiting a year to upgrade, or switching to Macs.
At least five factors combine to produce this state of affairs. First, Vista is a disappointment compared to what Microsoft had promised. The list of pulled features is huge, starting with the demise, once again, of the truly object-oriented file system.
Second, the vast user interface rework in Vista means developers must learn an all-new system. Why not see what the Mac and Linux have to offer?
Third, Apple is courting Windows developers unready to switch. With dual-booting machines and good virtualization to run Windows on a Mac as a second operating system, you can make the switch to Mac and still run Windows when you need it.
Fourth, some developers and organizations have reached the saturation point for new APIs over three .NET releases. Despite Microsoft's best efforts, Visual Basic 6.0 is still alive and well. With so much to learn, why dive into the new stuff?
Finally, there's the continued rise of the Internet. Web frameworks keep improving and online applications are more than good enough for everyday use. Who goes Windows if 80 percent of your time is in a browser?
Man the Barricades
Will Vista be the version of Windows that nobody develops software for? Not likely. Windows Vista is going to be preinstalled onto a metric boatload of new computers. But I do think Microsoft has made enough missteps in the past few years that some developers (including quite prominent ones) might defect to other platforms.
Microsoft's desktop near-monopoly doesn't extend into the Internet space. There's no particular need to join this revolution if you don't want to -- and there's never been a safer time to jump ship.
It's a dandy time to put some of your study time into Ruby on Rails, Smalltalk, or any of the dozens of other alternatives to mainstream Windows programming. The exposure to other ways of thinking will make you a better developer in the long run, and you might just find a market niche that you prefer.
Mike Gunderloy, MCSE, MCSD, MCDBA, is a former MCP columnist and the author of numerous development books.