Readers: "MS is the cancer"
And Linux the cure?
Our recent coverage of Steve Ballmer's comment that "Linux is a cancer that attaches itself....to everything it touches" prompted quite a number of readers to e-mail us with their own takes on the open-source debate.
Most of you allowed that there is a germ of truth in Ballmer's overstatement, namely that the GPL (which is but one among several open-source licenses) does possess a certain, unfortunate Puritanical fanaticism. And most agreed that the GPL is more an anti-copyright instrument than a viable alternative to the status quo.
But most of you also caught the way Ballmer slickly uses 'Linux' as a shorthand substitute for 'open source', and the way he implies that the GPL (which he doesn't mention by name but is clearly thinking of) is the license model for the entire open-source movement.
Herewith a sampling of your letters:
Reading the articles about the "Linux is a Cancer", Ballmer also seems to overlook that there are Open Source licenses that DO allow commercial use. Just not the GPL. Microsoft (and Ballmer) should know that with their BSD-ripped TCP/IP stack :-)
Marco van de Voort
MS is the cancer. Linux is the radiation treatment.
Ballmer is as confused as his statement. Cancer is something which spreads beyond control and devastates everything around it. Microsoft is a cancer which wipes out the most noble intentions of those intelligent, rational, reasonable, talented individuals who recognize it for what it is: a bloated, out-of-control, ancient technology convoluted together into one huge pile of code which conflicts with anything and everything around it.
Recently a small company in Portland tried to get a foot into the Microsoft door. This company contacted the powers that be at Gateway and indicated they would like to introduce a new product which would allow Gateway to be more competitive in the marketing of their computers. Gateway responded enthusiastically until they discovered the company they were dealing with had been an advocate of the Be operating system. Then they shut the magic door and replied they were not interested.
Oddly enough, the product the company wanted to promote to Gateway was created, designed, and produced to run on Windows 95, Windows 98, Windows Me, etc. But....alas....the door was closed before it even had a chance to open.
This is COMPETION 2001 style! This is mind-boggling blindly stupid monopoly mindset which eliminates free enterprise before it has a chance to get going....and it is part of the Microsoft cancer which is eating the heart out of technology's future. Ballmer can congratulate himself on perpetuating the lie. The evil empire reigns!
I've done some research with respect to the GPL, Linux and commercial code, as AlteredWorlds have a product in which we've invested many years of work, which now has a Linux version. We want to try and earn a living by selling this product, and do not want to release the code to the public.
To create a Linux version, we had little time and resources: just one programmer with no X11 experience at all. It can be very tricky to do certain simple things on X Windows without the help of a helper library -- go full screen, for instance, when showing 3D graphics, or change screen modes. We decided to use 'SDL' ('Simple DirectMedia Layer') library released under the LGPL (http://www.libsdl.org), and have been very happy with it.
The GPL and LGPL are as yet untested in court, but my research led me to believe there seemed (at the time I investigated the issue) to be some consensus that the following interpretation is legally correct (this text describes my own interpretation and should not be taken as representing the views of SDL, its authors, or users, nor having any legal weight whatsoever):
If you're going to use other people's code in your applications, then this choice has legal consequences. Incorporation of GPL code into an application that a company wishes to keep closed source & private intellectual property, is theft: an attempt to profit from the work of another without payment.
The 'Library' or 'Lesser' LGPL makes concessions for users that wish to keep their code private. Via this license you can use a LGPL library provided it is used as a SHARED LIBRARY, for which the code remains available, and you clearly indicate where this code may be obtained. This way the end user can modify, customize or replace this shared library, thus satisfying the core philosophical point of the [L]GPL: continued access to bug fixes and code improvements.
The only downer about this approach is that it forces a developer like me to ship an application with potentially large shared libraries that users must install & ensure their system recognizes. This complicates installs and uninstalls greatly, potentially leading to the common problem of (poorly installed) applications fighting over incompatible shared library versions.
'Static linking' avoids this at the cost of increased executable size: it is often the application users friend, as only the code that is actually *used* is linked in from the library. Multi-file dependencies can be removed, simplifying application installation, management and un-installation. Unfortunately this linking method is apparently precluded by the LGPL - the linked-in code can no longer be modified or replaced, as this counts as 'using someone else's code in your application without payment'.
This is the main reason I try and avoid GPL and LGPL code: for an application like ours, legal annoyances can make our users experience much more complicated. At the same time, SDL allowed us to provide a whole slew of features on Linux very quickly, and is of very high quality. It should be noted, though, that these features are for the most part included in the Win32 SDK on Windows -- in other words, part of the operating system for many years.
The GPL and LGPL are perfect for certain types of software, such as operating systems, drivers, compilers and so on -- although this is a separate discussion, of course. It is also great for teaching software -- but for public example code, it should in my opinion be avoided as potentially no one can use the example to help write a work they wish to keep private!
I regard a computer program as an artistic work of intellectual creation just like a book, a painting or a musical composition. Ideas and algorithms, abstract concepts and designs are expressed by a human mind in computer language(s) and arranged in unique, characteristic ways by each author. Surely it is obvious that an author should be able to decide exactly what they want to do with *their* code? They should not be required to make anything public unless they want to.
As an example of why one might not want to publish one's code, consider the fact that a well crafted program includes many thousands of hours of debugging time: sweat and labor! If we made this code public, others (perhaps with better funding) would not have to go through all the hassle (or pay rent while doing the work!) - why would users buy *our* software? In my humble opinion, the best consumer software *does not need any technical support* - not with comprehensive, easily accessible HTML help...
For what it's worth, in my view the moral is: if you want to retain full control of your code creations, *do not include any Open Source [GPL] code*. You did not write it, and you should understand that its use has consequences you may not like. LGPL Libraries are a different matter - consider case by case, and think of your end user first.
Remember that Open Source software is not *FREE* software - if it were genuinely free, you would be able to do anything you like without any conditions at all, which is most certainly NOT the case.
You're misreading [Ballmer].
He isn't talking about using open-source software as in installing and operating it. He's talking about re-using pieces of open-source software in other, commercial software. Since the interviewer was from a non-technical publication, I'm pretty sure that he deliberately over-simplified the case -- the BSD license does not prevent re-use in a commercial application. The GPL does.
OK, that's a slight oversimplification, but basically if you re-use some code covered by GPL that does what you want it to, you then have to make the source of your software open -- even if the proportions are 99% original code, 1% GPL. That includes anything you write which statically links to any of their code. This is of course perfectly deliberate. Microsoft's software has an awful lot of code in common, so if they even used two lines of GPL code, they'd have to open the source of their entire code base to comply with the license.
If the source must be opened, it's very difficult to actually make money from it. That's because if people have access to a compiler that can compile the program, they won't necessarily bother buying a CD with the material on, they'll just compile it themselves. There might be a small market for pre-compiled versions, but there would be ludicrously low prices for it (because a competitor can just pick up the source and compile it, then write a whole great batch of CDs) which would completely underestimate the effort put into producing the software.
The practice of charging for technical support on an open-source project is Evil. Companies involved in producing the software don't want to make it easy to use; that would terminate their revenue stream. By contrast, Microsoft is actively trying to reduce their support costs. OK, they charge, but they offer two free incidents with a copy of Windows 2000 -- when did you last have to call them up? I've had Windows 2000 Professional for over a year now -- I've had one problem that seems to be due to a bug, but I've got my own workaround for that.
Ballmer's point (as was Mundie's point) is that when the _government_ sponsors a project, paying for it with taxpayers' funds, including, obviously, corporation taxes, the community should be able to re-use it without restrictions on how it is re-used, if the government chooses to make the source open. It shouldn't use the now-you-see-it, now-you-don't, dance-of-the-veils GPL.
As someone who is not fond of Microsoft, and is a big proponent of Open Source software I feel compelled to comment.
In spite of his clumsy poorly-formed argument (which was probably spoon-fed to him anyway), I have to agree in principle. And maybe it wasn't as poorly formed as we think. Although he said "Linux" when he really meant GPL, maybe saying "Linux" had a much more important effect on his followers and fence-sitters than "GPL", which may not have triggered a response in the brains of many of these people.
Anyway, the GPL license is indeed a cancer, or maybe better stated, a virus. Once it latches onto one piece of your code it spreads, requiring you to continue opening up more of your code. Which is why I, and many others, use BSD-based Unix systems. The BSD license is much more commercial-friendly, since it does not have the onerous requirement of forcing you to open up all your source just because you used pieces of the BSD system.
Unfortunately, many journalists only know of the mantra "Linux" and have no knowledge of the BSD alternatives, which is sad. Then again, as stated above, FreeBSD, NetBSD and OpenBSD don't evoke the same rabid knee-jerk responses that "Linux" does, so there's not nearly as much glamour in bringing them up in an article.
[Quoting the article:]But one thing we can depend on is that it definitely doesn't mean what Ballmer slickly tries to imply: that once you issue anything under the GPL, every other piece of software you have for sale is suddenly affected by it.
I've certainly heard others claim this in the past as well. The Norwegian distributor of QNX I'm fairly sure mentioned that QNX in Canada experienced some issues with this a while back (someone popped up out of the blue demanding royalties). GNU is not free software. "Bundling" GNU licensed software causes headaches for many developers, if only because we can't read the convoluted language in the GNU GPL.
I realise most people see a 'free download' and automatically assume the attached license is of the no-nonsense variety, but software is seldom if ever free. Most of it is either leased, paid by flashing advertisement in front of you every 20 seconds or simply just stolen ("borrowed"). Most portions of the various Linux distros AFAIK are not covered by GPL-like license agreements.
[Quoting the article:]If identifiable sections of [a companion] work are not derived from the [open-source] Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it."
The passage is hopelessly ill written.
The passage is perfectly clear: if you develop a module FOO and distribute it as part of a program BAR that is derived from a GPLed work, you must distribute FOO under the GPL; if you distribute it as part of a program BAZ that is not derived from a GPLed work, you don't.
What on earth, we must wonder, can the authors mean by a companion work which can be 'reasonably considered' to be separate?
This is standard legalese. The "reasonableness test" short-circuits no end of specious legal wrangling over what might be meant with a simple "how would a reasonable person interpret this?"
Do they mean it should have been developed independently? Do they mean it should function independently? Do they mean both?
They mean it should be decided on a case-by-case basis. It would be impossible to define everything a priori to the satisfaction of some putative future shyster lawyer, so you avoid trying to. It is for precisely this reason that the "reasonableness test" was adopted.
What's 'reasonable' here, anyway? And 'considered' by whom? The average adult? The average programmer? It's vague, all right; we'll give old Steve that much.
It isn't vague at all, it is perfectly clear to anyone familiar with contract law. And since Mr. Ballmer no doubt has access to excellent legal advice, one can only assume he knows that. In the light of which, his comments must seem a little peculiar.
[Rant alert] Well if Linux is a cancer, Microsoft are rat poison.
Microsoft are no better than the open source movement they constantly condemn. Bundling more software (CD burner, firewall, and media player) free with WinXP... because "it's what people want". The more software they bundle with their operating system, the more businesses suffer.
They're doing other companies out of business, especially in the firewall area (where companies will pay good money for a firewall). They can raise the point that the economy won't suffer from it, because Microsoft will be making a fortune as people constantly upgrade their MS operating system to benefit by new software additions (which will probably continually kill off other companies bit by bit). In the end Microsoft will probably produce all the software required by its operating system. Also, it will get to the point that if Microsoft goes down, the entire economy crumbles, so everybody's going to do their best to keep it thriving. And there we have it... world domination.
Then they blame the open source movement for offering free software, saying that it's killing business. Oh it's all free, that won't do, wonderful people like Microsoft will get less money because people might use Linux and have to pay nothing for their software... the economy will suffer.
The more software Microsoft bundles with its operating system, the less money other software companies will make because people won't need extra software. So Microsoft are saying, "It's ok for us to take the income away from other businesses, but it's not ok for open source to take it away from them (and us as well)".
Open source is freely providing what people want, exactly what Microsoft is trying to do with their operating system. In both cases money is lost on somebody's part. The difference between the two is very slight, basically that Microsoft sells it's operating system whereas Linux and its software can be freely distributed. If you were forced to pay for Linux, but all the software came free with it, then Microsoft and Linux would be pretty similar (at least in motives).
How can Microsoft justify their attacks against open source?
Sponsored: Network DDoS protection