Cringley on Microsoft and Linux
brentlaminack writes "Time for this week's dose of I, Cringely. This week the Cringe talks about Ballmer's Orlando comments from this week. He compares Ballmer's comments with Linus's. Nothing new here for the /. group, but a good read for the non-technical."
I liked the part where he describes how most bad open source projects die in a darwinistic fashion while most bad microsoft projects limp on forever.
Cringley's article is a good non-technical explanation of why freely developed and freely distributed open source software can and often does work better than Microsoft's commercially developed and commercially distributed closed source software.
I like what Cringley said, but I don't think he goes far enough. The argument becomes more lopsided in linux's favor when you take into account the ways that linux has changed microsoft's products.
When I started to use linux, people who worked with windows pretty much accepted that you'd have to reboot several times a day. This wasn't just because of the need to preserve backward compatitibility with DOS. Even NT 4 was pretty buggy before sp4 or so.
I remember telling people that sun servers often stayed up for years without reboots -- no one believed it. Computers crashed, that's what computers do. Microsoft, and to a lesser extent apple, convinced most casual users that's the way computers worked.
But obviously, this wasn't something that was caused by an immature level of technological development, because other companies, like sun, were shipping machines that didn't crash all the time.
I believe that linux is responsible for a huge percentage of the core improvements that MS made to windows. They never felt it was a problem to ship OSs that crashed until they saw an alternative that didn't crash, on the edge of their radar screen. An alternative that people could install on their existing PCs, an alternative that people running ISPs could use to do server work.
Linux's quality, for the most part, doesn't come out of competition. There are efforts to make linux better at doing certain specific things, efforts that are driven by benchmarks. Most of the time, these little competitions seem to be waged with FreeBSD. But it's a historical fact that people wanted to make linux more reliable way before windows had any stability at all.
Microsoft *needs* linux to push it. If linux wasn't out there, does anyone think they'd be trying to tighten up security? Does anyone think that they would have delivered stable versions of windows without the pressure of competition.
My point is that even if you don't use linux, you benefit from it in a big way. In fact, I would say that most of the real benefit that linux brings to the world comes in the form of competitive pressure on microsoft, and those benefits are seen by windows users, not by linux users. Who knows how much they'd be charging, what the net would look like, how often windows would crash, etc., if it weren't for linux.
It's hard to get this across, but every discussion of open source vs. commercial development ignores the effect that open source exerts on commercial developers. The discussions are simplistic for that reason.
If you were going to compare open source development vs. monopolistic commercial development in a realistic way, you'd have to talk about what a horrible job commercial developers did before open source developers started to hold their feet to the fire.
Conventional wisdom suggests that the people who had been paid more would be more apt to change their minds, but actually, the reverse was true. The explanation is that the people who were paid could resolve the conflict in their mind between the beliefs they held and the contradictory statements they were writing by saying "heck, I still don't believe this, I'm not writing it because I believe it or anything, I'm writing it because I'm being bribed to." But the people who didn't have that "out" had to resolve their own cognitive dissonance another way, and for some of them, at least, the way was to realize that maybe there was something to the counterargument, after all.
Anyway, the reason I bring this up is that I was eerily reminded of it while reading Ballmer's arguments that Microsoft's commercial software is "obviously" better because it's written by professional programmers who are paid for it.
But if you're getting paid to write code, and the code is (for whatever reason) crap, that you can't take pride in, you can at least feel good about all the lovely $$$ you're being paid. The open source programmer, on the other hand, who is doing it for love rather than money, doesn't have that out, so has a much higher incentive to write code that's not crap, because feeling good about it is the only reward.
I think you've managed to miss the point entirely.
The fact that OSS gets tested "in the real world" means that it undergoes the sort of testing that even Microsoft couldn't match (for most companies, they don't have the money to hire the hoards of testers with the almost infinite variations of setups required to really test something, for MS, they don't have the time to test this thoroughly). If you don't want to be part of this, then you use older, stable versions of the software.
Otherwise, you've pretty much argued against one of the main strengths of OSS, which from inception has been release often and early (but don't call it version 1.0 until it's actually ready). There's entire articles written about how it's not hard to fix bugs -- the hard part is finding them.
You're arguing for a step backwards in the development of software (a step into how its done in the commercial software world), and for changing one of the core strengths of how OSS has gotten to where it's at.
The day Microsoft gets hauled in to court to take responsibility is the day the flood gates are opened on software liability in general. Say goodbye to open source. How do you think Linus or R.M.S. would fair against a volume of lawsuits that wouldn't even make Microsoft flinch? How many developers would risk open source development if there was liability involved?
I don't remember the details, but the software industry tried to get a law passed that would've voided EULAs without a piece of paper to back them up (anyone remember what I'm talking about?). Microsoft was all for the idea. I think it died (fortunately). Just remember, liability is a double edged sword.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
PostgreSQL is quite heavily tested. Their regression test suite is...formidable.
gcc is, if I recall, has a regression test suite which grows by leaps and bounds with every release. Not sure what sort of coverage we're looking at right now.
perl 5.8 also has a large test suite, and 5.10 is looking to be insane in the testing department.
All of the core CPAN modules have at least rudimentary testing, most of them have quite heavy testing.
parrot loves it some testing as well.
OSDL wrote a test suite for the Linux kernel which is pretty hard-core, I've been told. Testing results for development kernels are posted regularly to LKML, I believe.
These are scattered projects (and they are not the only projects out there that test), but they reflect, in my opinion, a growing trend in open source: automated testing.
The reason for this is twofold, IMO.
As a possible argument against what I'm saying, I'll refer to your statement "no real testing of Open Source. No Test Plans, no Test Matrices of test cases"[1].
To that argument I would say: don't get so hung up on names that you miss the point.
[1] - I'm not saying you are making or would make this argument, just trying to think of possible responses and responses to those responses.
where are the A-Class players for Microsoft?
Marketing and Legal.
try { do() || do_not(); } catch (JediException err) { yoda(err); }
A couple of points...
First, Open Source projects tend to be pretty up front about the state of their code. They'll warn people when the project is lacking in its early stages. And bug reports / tracking tends to be done on a fairly open basis. There is no marketing group pushing glossy brochures trying to paint a rosy picture of bulletproof reliability and infalability (not even touching on EULAs and business deals that forbid negative product reviews).
Secondly, if I'm supposed to be a permament beta tester for someone... why do I pay hard cash for the privilige? Open Source involves a trade in time and effort. Commercial software should be a finished product.
Not all coding goes in to a shrinkwrap. I know a good number of coders who are paid for customized code that largely stays within the confines of their employer's enterprise. In most cases, what they want to code on their own free time would never compete with what they're working on for their employer.
Meanwhile, some have created Open Source projects out of a few untilities they threw togeather to handle some internal situation - with Corporate blessings. And there's talk where I work right now to put some manhours (either from existing employees or hiring in additional help) towards extending an Open Source application management has become particularly endeared to - but doesn't quite do everything they want.
For these people, Open Source software is not a threat. I could see that if your entire focus on the industry is niche products or shrinkwrapped OS' and applications, the whole Open Source thing could be a bit troublesome. But then - if people doing something for no cost ruins your industry... you have to wonder about the viability of that industry.
Sure - the views of people like RMS may make some view Free Software as a threat to their livlihoods. But honestly, is RMS' ultimate vision really going to come to pass? Will all commercial software be replaced by Free altenatives? Look around. For every product being esentially commoditized, I bet you can find a few more that haven't been touched. That's not even mentioning how many commercial products sprang either directly from, or due to the influence of, Open Source projects.
One final thought. Competition is competition. Any given commercial software house has no guarentee to profit and success. It is just as likely that another commercial outfit will produce a killer product as it is that an Open Source project will eliminate the profit in it. And at that point, you're out of a job no matter what.
If that worries you, look in to another career. But then - don't expect much more stability elsewhere either. The world is a rough place like that.