Bridge to Linux Island
March 2, 2001
What makes their experience unusual is that virtually nobody who isn't consciously trying to avoid Microsoft tools actually does so. They may be developing Windows apps, or Web sites running on Internet Information Server, or even taking the first steps toward looking into .NET, but in some way they deal with Microsoft.
But avid Linux-loving, Microsoft-hating developers will avoid all of these on principle. As a result, they don't realize what it is like to be a developer working on a Microsoft platform. It's as if they are off on an island of their own, away from the Microsoft mainland.
Now, when I write "they don't realize what it is like to be a developer working on a Microsoft platform," some readers already are rolling their eyes and thinking, "no great loss." But that view ignores the massive amount of work Microsoft puts into attracting developers to its platforms and keeping them happy once they get there.
This process is known as evangelism, and if Linux is going to attract more developers to Linux Island, the Linux community needs to understand the benefits of evangelism.
What is evangelism? Briefly, it means getting other developers to write software that works with your software, which for an operating system means getting developers to write applications and drivers that run on your operating system.
Evangelism means getting good documentation for your interfaces, but also making sure that there are Software Development Kits (SDKs) produced with good sample code, and that there are conferences for developers where experts are available to help them.
Hardcore Linux hackers may scoff at this and say the only docs they need are the source code. And it's true that some of Microsoft's work in evangelism is necessary because the source code to its operating systems is not available.
But the vast majority of evangelism aims to capture less hardcore developers, who need to feel a bit cosseted. Developers at other companies jump at the chance to come to Microsoft to help it plan its latest API or driver interface. They work hard to ensure that their software or hardware meets the guidelines allowing them to display a "Designed for Microsoft Windows" sticker. (Don't think just anyone can slap one of those onto a box -- quite the contrary).
How many Linux developers know that Microsoft maintains a Porting Lab on campus, where it invites third-party developers in to work on their code with hands-on help from Microsoft's own developers?
Now, some of this could happen in the Linux world. Certainly there are conferences where Linux developers mingle. There are worthwhile sites such as OSDN and OSWG, trying to fill in the gaps in developer support.
However, they aren't as focused on evangelism: OSDN, unlike Microsoft's MSDN, is more a collection of other sites than a strict evangelism site, and OSWG is tackling the issues of user documentation and developer documentation.
Linux advocates moan and groan about how there are so many Windows applications and drivers, which leads to so many Windows users, which leads to more applications and drivers, and so on in a circle that is very hard to break in to. But it can be done.
Through its evangelism efforts, Microsoft has successfully moved CP/M developers to DOS, then moved DOS developers to 16-bit Windows, then moved Win16 developers to Win32. Now it is cranking up the evangelism machine to move Win32 developers to .NET.
These moves didn't happen by chance, or by slowly waiting for market forces to assert themselves. They happened through evangelism.
If Linux is ever going to succeed on the mainstream desktop, it needs to give users a reasonable hope that the application they want will run on Linux and that the hardware they use has a driver for Linux. This means Linux can't be the No. 4 or No. 5 choice for an application writer thinking about which operating system she should port the application to, or a hardware vendor thinking about which operating system it should write a driver for.
It has to be No. 2, and trying harder.
It's easy to do the first few ports yourself. Microsoft always gets its own applications running on a new platform very quickly. It writes the first set of drivers itself. But once that is done, it lets the evangelists take over, and third parties do the rest of the work to give broad application and driver support.
If Linux can get a true evangelism effort going, evangelism can become the bridge that other developers use to get to Linux Island.
Once the developers are there, the users will follow.
Adam Barr worked at Microsoft for over ten years before leaving in April of 2000. His book about his time there, "Proudly Serving My Corporate Masters," (www.proudlyserving.com) has just been published by iUniverse. Among other things, the book has a much longer discussion of evangelism and Linux. Barr lives in Redmond, Washington.