I'm a 27-year-old programmer. When I'm 55--in 2031--I want to still be a programmer. And in 2031, I want to love my job as much as I do today. What will 2031 look like? Right now, two groups are offering their visions for the future: Microsoft and the open source movement. A third group is conspicuously silent: small, independent developers. What do the Microsoft and open source futures look like? Will the independent developers speak up? Which future should I fight for? My choices, and the choices of hundreds of thousands of people like me, will help determine which future we get. So let's take a look and start talking.
The Microsoft Future
Microsoft offers me a single, unified platform for writing software, with officially blessed tools and technologies: Visual Studio, C++, C#, Microsoft SQL Server. Having a single, dominant operating system is not a bad thing: I only have to write my software once, and I can sell it to a billion people. No porting, no lowest-common-denominator, and no hard choices about what to support. And once .NET destroys Delphi, all my development tools will come from Microsoft.
So where do I fit in this future? I'll need to get an MSCE certificate, which says that Microsoft approves of me. I'll build my software by plugging together components. Instead of spending three days writing a library, I'll buy it off the shelf for $200 dollars (a good deal, if it works). Every five years, I'll throw away all my skills and prepare for the next generation of technology. If I want, I can make good money by writing libraries for other developers, or by plugging together libraries to build in-house business applications.
OK, that sounds boring. What if I've got a great new idea, and I want to change the world?
I can always start a software company. I can make a great product, sell it to users, make a fortune, and retire to a sunny island somewhere. Well, this is the traditional theory, and it used to work. But the dead and dying carcasses of Netscape, Borland, and a hundred minor ISVs suggest that if I succeed, Microsoft will offer to buy me out. And if I don't sell my company, Microsoft will crush me. Parents will whisper my story in the dead of night to scare their children.
I guess I could take my good idea to Microsoft. There, at least, I could change the world. If I'm good, a hundred million people will use my software. (As one of my Microsoft friends used to say: "Join me, Luke. Together, we can rule the galaxy.") That's not so bad.
But if only people at Microsoft can innovate, there won't be any innovation. All of Microsoft's truly great software--Word, Excel, Windows, Internet Explorer and C#--was created when Microsoft's platform was threatened. Now, Word are Excel languishing. Each version of Windows looks like the one before. Internet Explorer is moribund. And C# is unlikely to improve much if Delphi and Java die.
And as Microsoft's competitors die off, Microsoft will squeeze everybody harder and harder. We'll all be forced to switch to a subscription model, and to pay for our software again and again. Our computers will include unbreakable Digital Rights Management--which means that our computers will serve Hollywood and Microsoft, and not us. And if Microsoft's hand gets too heavy, our only hope will be government regulation of software.
The Microsoft future can only end in two ways: The grey death of total platform monopoly, or the sucking pit of government regulation. I don't want either choice when I'm 55.
The Open Source Future
If I listen to Linus Torvalds, Eric Raymond, and Richard Stallman, they'll tell me I have another choice. Linux, open source software and the GNU Project are--combined--the single biggest threat to Microsoft. The open source movement has hundreds of thousands of developers, millions of dedicated supporters, and a shocking rate of improvement. Open source software can't compete in every market today, but it's moving a lot faster than the competition. Open source is hard to kill, because it's hydra-headed, and because it's probably an undead creature risen from the grave of Unix.
OK, OK. Open source software is also a warm and fuzzy attempt to liberate humanity from evil platform vendors, and a libertarian-approved technique for cutting your corporate bottom line. But will open source software let me make money and have fun? Let's ask the experts.
Richard Stallman, founder of the Free Software movement:
Restricting copying is not the only basis for business in software. It is the most common basis because it brings in the most money. If it were prohibited, or rejected by the customer, software business would move to other bases of organization which are now used less often. There are always numerous ways to organize any kind of business.
Probably programming will not be as lucrative on the new basis as it is now. But that is not an argument against the change.
Eric Raymond, the leading philosopher of the open source movement:
Open source turns software into a service industry. Service-provider firms (think of medical and legal practices) can't be scaled up by injecting more capital into them; those that try only scale up their fixed costs, overshoot their revenue base, and starve to death. The choices come down to singing for your supper (getting paid through tips and donations), running a corner shop (a small, low-overhead service business), or finding a wealthy patron (some large firm that needs to use and modify open-source software for its business purposes).
I've been thinking about open source software for the past six years, and I think Eric Raymond is right. Tipping seems unlikely to catch on, so I can either run "a small, low-overhead service business" (translation: I can write custom business applications as a consultant, which I did in 2000-2001), or I can enhance open source software for a large employer (which is what I do right now).
These options aren't sexy--and they won't make me filthy rich--but the pay isn't bad, and I do have some fun. (In my current job, I get to hack on multimedia software, 3D game engines, and advanced programming languages.)
What if I have a great idea, and I want to change the world? I can work on my great idea during nights and weekends. Once I get something working, I can recruit volunteers--which is the most fun a programmer can have, I think. And if our work is good enough, we can improve the lives of a hundred million people, write a book for O'Reilly and someday get paid to improve our creation.
The open source future is lacking in entrepreneurial zest and multi-million dollar fortunes. But it's a lot more appealing than the Microsoft vision. I think I could live with the open source future when I'm 55.
The Missing Future
But there's one group we haven't heard from yet: The small software developers. For 25 years, these people were the lifeblood of the personal computer revolution. Their old vision is still the sexiest: Build great, innovative software, sell it to the users at a reasonable price, make millions of dollars, benefit humanity, retire young. And if you mistreat your users, you'll loose them, because you have a hundred competitors. The old Silicon Valley was built on this dream, and it worked for two decades.
But this dream is nearly gone. It's getting crushed between the awful power of Microsoft, and the onrushing juggernaut of open source. A 30-person company can't compete with Microsoft. And a 30-person company will have a hard time competing with 300 open source contributors giving software away for free and making their living as in-house developers (though it can be done).
By itself, a 30-person company is such a tiny force. And each of these little companies is proudly independent, and each is too focused on destroying other little companies to see the giants all around them. Individually, the little companies will be trampled upon, unseen. They have no philosophers to speak for them, and nobody to defend their role.
The small companies offer me no visions. They can't build platforms; they can't challenge Microsoft, and if they keep squabbling with each other, they can't even create simple standards. The press and the business world won't even look at their technology until after it has been co-opted by the big players.
If you want my support, and the support of others like me, propose a vision. Show me you can co-operate, show me you can build platforms, and show me you can drive back Microsoft without becoming the next Microsoft. Tell me a tale of 2031, and what I'll be doing when I'm 55.
You may have allies in the open source world (Richard Stallman will never like you, but Linus Torvalds may buy your software). You may have allies in the press. You may even have allies in big business. But if you want to be anything other than niche players, you're going to have to speak up. The world is listening.
Update on 31 Nov 2005: Since I wrote this article, there's been a great resurgence in small developers, both in the traditional ISV market and in new (profitable) software-as-a-service markets. And Paul Graham has lately been writing eloquently about startups.