After reading Robert Scoble's latest blog, I got off on a tangent about the morality of selling software. At any rate, I've excerpted my response below becasue I find the debate interesting. Be forewarned, it's long.
Why is it that the open-source v. Microsoft argument always seems to be so polarizing? It reminiscent of the two-party political structure, and it really makes me wonder if there is a whole host of "voices" that are in the middle, but since their opinion isn't so exciting you never hear about it?
Back in about '93 I got pissed off at my PC. It's been a while, but I believe it started with too many Windows 3.11 crashes in one hour, so I ordered Slackware CDs, formatted the drive and began a journey.
Now if you're not familiar with Linux at the time, XWindows as in its infancy and was a resource hog, so basically what you has was a command shell. I had never run anything like it, having graduated from the Vic20, C64 and Amiga, and I'm here to tell you I burned a boatload of time just trying to get it running. Ah the joys of a 12-hour OS recompile to install a new driver.
I did solely Linux for about 2 year and I loved it. I got a second phone line installed and wrote a simple keep-alive script that essentially got me a dedicated modem connection to the University. I loved telnet and FTP and thought the Web was just plain stupid when it appeared (did anyone actually find Lynx intuitive?).
All was well and good until I actually needed an application. Chemistry required charts, and I needed to be able to get homework done and drink beer, and I knew one would have to suffer if I kept with an OS that had no applications.
So I partitioned the drive and installed Windows 95. It sucked, it crashed all the time and it was slow. But it ran Quattro Pro.
I used Netscape and tried to uninstall IE. After that experience, yes, I believe Microsoft was using illegal business practices to stifle competition, and yes, I moved to IE because it was so hard not to.
Linux stayed on my drive, but went from the default boot OS to the option. Soon I was using it maybe once a week. Then once a month. Then I got a new hard drive (still have the old one with the $458 sticker on it!) and decided I could use the space better without Linux.
Sure Windows sucked, but I liked it better than a Mac. After having the power of Linux, the Mac seemed like it was geared toward monkeys and the inept, so I kept going. I mean really, it was the only OS with apps. I tried OS/2 - nice, but again no apps.
I then moved into the "real world" and got a job - not as a programmer, but as a geologist. By this time Excel had taken over Quattro for me - it just had better features. That I chalk up to innovation and a better product. Quattro got beat in the open market. I'm fine with that. My employer agreed and I was off and running.
After a fairly roundabout path through VBS and chance encounters, I ended up as a VB6 programmer using Windows 98. Scoff if you will, but I've never had programming classes, and VB was simple to grasp. It took me back to my VIC20 days and BASIC. This is why VB has such a large following - not everyone is a CS major, and business needs to get done.
The balance sheet doesn't give a damn if you use proper code techniques, what's important is that the task gets accomplished, and VB did (and still does) that. Sure, it's enabled a *lot* of crap code, and many coders who think they know what they're doing, but it was a brilliant move by Microsoft. The tools were great and it gave the masses the power to create. Another great Microsoft achievement. Still the OSes crashed all the time and sucked.
Fast forward a few more years and now I'm a mobile developer. I've had Palm, RIM and WinCE experience. Hands down I prefer CE. Palm's OS makes no sense to me, and I charge a 20% premium if I have to even launch CodeWarrior on a project because it sucks so badly. And it was state of the art when I used it. So again, Microsoft had the edge with the best tool around. RIM was smart enough to use the MS tools as the dev environment for their own non-Microsoft OS.
Fast forward a couple more years. Microsoft releases the .NET Compact Framework. For a 1.0 release I'm surprised. I expect it to be really buggy, as I've come to expect Microsoft to let users be their testers and fix stuff later, but it was quite solid. And of course it came wrapped all nice and neat in Studio, which is hands-down the best development IDE ever. If you think otherwise you're deluding yourself. Command-line compiling may make you a purist, but you're a slow purist and marked for redirection into /dev/null.
But of course the CF is missing lots of stuff (shocker, compress 80MB into 1.5 and you lose functionality) and being the person I am, I co-found a shared-source project called OpenNETCF.org. We provide free source code for anyone who wants to use it, but the catch is it's all for a Microsoft product. Yes, shared source targeting a Microsoft OS and Microsoft tools - even a Microsoft language.
We decided shared is better than open source because we think the GPL is crazy. If someone makes an app that uses our stuff, why should they have to publish their IP? People need to make a living, pay the mortgage, things like that, and you can't get it giving away the recipe for your special sauce.
So I've embraced free software, but only as far as I feel it's realistic in a business world. Capitalism revolves around personal gain as an incentive, and it's that incentive that drives innovation. Commoditizing everything will kill innovation. Pure capitalism, however, fosters corruption and stagnation as well.
It's the blend that hits the sweet spot. Being able to sell a product so you can take a nice vacation gives investors and employers a reason to pay you to create software. But corporate work is hindered by process and the very organization structure that they require to function. The open/shared source community can react fast and innovate, but it lacks the ability to fine tune, to get it just right and go the extra mile, because there's little incentive to do so.
Is Open Source going to take over the software world? I seriously doubt it. There's no incentive, and if someone can get paid for a body of work or give it away, I'm willing to bet a majority will take the paycheck.
Is Microsoft stagnant and withering? Hardly. Look at the Whidbey/Yukon/Longhorn triumvirate. If you think there's no innovation there you're seriously myopic.
Do they always beat open source? Hardly. I’m a huge fan of Firefox, and once again am refusing to use IE.
Did Microsoft break the law in the past? Probably with IE and maybe with Media Player as well. I don't follow it because I don't use it.
Me, I'll keep on the same path as always - that which pays my mortgage, feeds my family and allows me to have fun. Do I hope to make enough to retire early? Sure! Will I do it giving away software? Never. I've made a grand total of $0 from OpenNETCF.org in the year it's existed, but I'll continue to work on it because I learn from doing it, which in turn makes me better, which make it more likely someone will *pay* me to do work for them. Is that immoral? You made that decision before you read this far.
The point is that I like some of what Microsoft has done, and I don’t like others. I like some aspects of free software, but others I don’t. I can’t be the only person that thinks that getting the job done and making a living doing so can be done without rabidly following one side of this debate. Can I?