Skip to comments.
Open Source Myths
Neil Gunton's Web Page ^
| 7/26/2004
| Neil Gunton
Posted on 07/26/2004 8:35:06 AM PDT by GeorgiaFreeper
neilgunton.com / open_source_myths /
Open Source Myths
Thoughts on some frequently-stated dogma promoted by the Open Source community
Copyright © 2004 by Neil Gunton
Last updated: Mon Jul 26 08:43:56 2004 CDT
This document collects some of my thoughts regarding some of the "conventional wisdom" that people seem to take as Gospel Truth about Open Source software (OSS) and software development in general. This is NOT intended to be "anti-OSS", but rather to generate real thought and discussion as opposed to the constant mindless re-iteration of the same old tired dogma. I fully realize that this will be controversial to many and will probably generate much vociferous condemnation of my opinions, but I just think that it needs to be said. This is a bit of a rant, sorry if it's longer than it should be.
Contents
- "If you're not willing to help fix it then you shouldn't complain about it"
- "Open Source software allows you to get under the hood and fix problems"
- "All software should be free"
- "Open Source software is always better than closed, proprietary software"
- "Scratching the personal itch"
- "More choice is always better"
- Conclusion: It's Not So Simple
-
1. "If you're not willing to help fix it then you shouldn't complain about it"
- In any discussion about an Open Source project, someone will pipe up with a complaint about it, and someone else will reply that you shouldn't gripe unless you're willing to help pitch in and fix the thing. This is somehow supposed to be the ultimate word, the riposte that has no riposte... but it's just plain silly in real life. Even if we are developers, most of us have real jobs, or at least other projects that we are working on full time. We don't have time to "get under the hood" (see next section) and find out how the Linux kernel works, or work up a patch for Apache, or fix a problem with Perl. However, that doesn't preclude having the right to criticize (politely and tactfully, of course) how something is designed or works. Constructive criticism is and should be a valid part of the community process, and telling people that they don't have any right to gripe unless they contribute code fixes themselves is just unrealistic.
-
2. "Open Source software allows you to get under the hood and fix problems"
- The idea seems to be that Open Source is better than closed source because you can "tinker" with the code. But how many people actually do this? Hardly anybody in real life. In reality, it's generally very, very difficult to fix real bugs in anything but the most trivial Open Source software. I know that I have rarely done it, and I am an experienced developer. Most of the time, what really happens is that you tell the actual programmer about the problem and wait and see if he/she fixes it. Most people do not participate in the development - even for Linux itself, most of the development is done by a very small number of people (in the tens at the most). Maybe you'll poke around a bit in the code, and if it's trivial then you can fix it - but again, this really isn't something your average user is going to do.
-
3. "All software should be free"
- One of the central tenets of the Open Source philosophy (as it seems to be understood by the average person, at any rate) is that all software should be free. This seems a little unrealistic to me, for one glaringly simple reason: Development takes time and effort, and the rest of the world that we all live in is most certainly NOT free. We have to pay for everything else - a place to live, food, clothing, services, you name it. Even artists have a socially-accepted way to make money, and art is possibly one of the closest things to programming. So I fail to see the reasoning behind the suggestion that I should be expected to provide the fruits of my labor to the world for no financial reward. How did that happen? Well, it's easy to see the foundations for it, which are perfectly noble and valid - this all started because some people (RMS et al, for whom I have nothing but respect) wanted to share code with fellow developers, which also has its basis in the longstanding scientific traditions of sharing knowledge. Be assured that I am not making an argument against sharing code or doing anything else that you feel like doing. But what I do object to is the concept that all code can somehow be developed for "free", without there being a price to be paid somewhere. So, what is that price in this case?
- I know that I, for one, having over 20 years experience writing software, find myself in the odd position of realizing that if I write something independently, then there is basically not a chance in hell of being able to sell it or make money directly from it. Sure, I can sell "support", but to be honest the idea of answering phones and emails all day really isn't my idea of a fun time. I grew up in the 1980's assuming that I would one day be able to write some really cool software, then *SELL IT*, and make some real money for my trouble. But if I were to do that today, then in all likelihood someone would write an Open Source version of the thing, which sort of takes the wind out of any commercial startup. It's a bittersweet situation, because on the one hand, I am able to build some wonderful software as a result of Open Source, but on the other hand, this comes back to bite me in the butt when I want to write something to be sold for real money. I can understand why the larger software companies are getting very twitchy about Open Source - after all, Linux, Apache, MySQL, PostgreSQL and so on are rapidly becoming mature enough to be real competitors to the major software vendors.
- But where is all this going? Ah yes, the famous Commoditization of Software. So all software will be free in the future, simply because it will be dominated by Open Source and free software. But who is going to pay for it all? You can't develop in a vacuum, *somebody* has to pay the developers. It seems to me that the only way to do it is for all the Open Source developers to be working at large companies, with the large companies paying a salary for the developer to work on the Open Source project for some portion of their time. That's fine, I have no problem with that concept, but it's *not* "free". The software is effectively being supported by the charity of corporations. You trade your independence for the security and safety umbrella of The Big Company. Given the behavior of large companies (the bigger they get, the more amoral they seem to get), is this a very solid foundation? And is it very satisfying for the developers? It basically says that software itself cannot itself directly make money independently, but can rather only be a supporting player in some other business. The only way to make money is to give away the software, and charge for support services.
- As a developer myself, this prospect is profoundly depressing - as I said earlier, I develop applications just like a carpenter makes tables or an author writes books. But we don't have a situation where we say that all authors have to be employed by large companies in order to be able to make money directly from their literature. Sure, they may go with a large publisher, but the author is basically able to sell books, this is an accepted and normal part of everyday life. People don't expect to get a book for free. And we have many small businesses run by carpenters who charges directly for their work. Why should software be any different? I mean sure, we are all allowed to write "free" software for no money and release it out into the world purely for the feel-good factor and ego boost - but to make this the dominant way of developing anything worthwhile just seems like shooting ourselves in the collective foot.
- Some argue that there will always be a market for vertical market software (customized, very specific to a particular business), and this is true, but why can't I write a wonderful new *general* tool and make money from it? Yeah, I know, some will say "Go ahead and try, it's a free world". But you know as well as I do that if I am successful then inevitably some kid in his parents' basement will write his own Open Source version of the thing, for free. We seem determined as a culture to ensure that the only "worthy" software is that developed for free. This may be an understandable reaction to the overarching monopolistic behavior of companies like Microsoft, but perhaps we are overreacting?
- Here's the thing: Nothing is ever really, totally "free". There is always a price to be paid, even if that price is simply the breakdown of the marketplace and the ability to make money from your own software, that you developed with your own time and effort. If the culture doesn't support the idea of paying for software (and music, and movies, etc) in some way, then we are basically just denying artists and programmers the right to make money from what they do. There needs to be a balance somewhere between the draconian strategies being pursued by the RIAA, MPAA and other "intellectual property" syndicates. We should be able to make money from our labors, without screwing over the user in the process.
-
4. "Open Source software is always better than closed, proprietary software"
- People rant on and on about how much MS Windows sucks, and it's true, it does in many respects. But it's also true that in many respects, Windows kicks Linux's ass in terms of usability and GUI refinements. It's widely recognized that the Linux desktop is still a work in progress playing catch-up to Microsoft, and people continually wage religious wars on each other's OSS projects.
- I think it's true to say that while many Open Source projects are superior to their close-source counterparts (Apache being a prime example), it's also true to say that a closed-source approach to a problem can have some benefits. Some of these benefits include having a more focused direction for the team, given the fact that there is (usually) just one manager and team leader, firmer schedules and deadlines, tighter management, profit incentives, salaries and bonus motivations. While this can also be true for open source projects, the "design by committee" that goes on with community projects often results in a more bloated and less focused product that tries to be all things to all people. Also, sometimes a simple lack of funds on the part of the developer can hamper the development.
-
5. "Scratching the personal itch"
- This is one of the oft-repeated explanations for why programmers develop Open Source software, and it's perfectly true that most of these projects get started because they address a personal need of the developer. But is this a good way in general to do things? For example, this implies that most of the things that get implemented will have direct relevance to developers and programmers. In other words, it's no coincidence that most of the Open Source tools out there are developer tools - compilers and other server utilities. There are Open Source end-user oriented tools, but they have mostly failed to make the same impact as the server-side stuff. The Gimp is surely a fine piece of software, but it has failed to make a dent in PhotoShop's market, even though it's free. The Gnome and KDE projects remain a bit of a mess, and while they are making great strides they remain far behind MS Windows in terms of real usability for the kind of "my grandma" users that Windows caters to. This is to say nothing about all the glaring security vulnerabilities on MS Windows - that's not the point here, and is really a distraction from the real issue, which is that if Open Source mostly scratches a personal itch, then you're going to get mostly software that scratches the itches of programmers, not end-users (unless the end-users happen to be programmers).
- A commercial company, on the other hand, can afford to scratch the personal itches of its end-users, because the end-users are the ones paying the bills.
-
6. "More choice is always better"
- One thing that Open Source does is to, well, open up the process of what gets included in the final product. So we have fifteen different editors, several different web browsers, several different desktops, and so on. While this might seem like a Good Thing at first (biodiversity), it could also be argued that eventually trying to reduce the choice somewhat for the end-user would also be beneficial. For example, a new Linux user has to choose between all these different packages (e.g. which desktop) without knowing anything about either choice, or else just admit defeat and click "All", which results in a bloated system. Reducing the choices would reduce the bloat and clutter that seems to be in danger of overtaking the Linux of today - how many CD's are there now in the average distribution?
- Choice is good, but a reasonable pre-selection of options is better for people who don't have the time or inclination to make their computer be their life. Most people, after all, would really like their computer to be more like their toaster. It's there, you use it, you're done - move on with the other, more important things in life.
-
7. Conclusion: It's Not So Simple
- Some people will inevitably condemn me for putting down Open Source, disparaging the community process and otherwise encouraging the proprietary, close-source model. I am really doing nothing of the sort. This is just a collection of thoughts reflecting on the process and its consequences, trying to give a little balance and generate more thought. It's just an observation that things aren't so simple as they might appear - the Open Source model has its own pitfalls, and it's just as well to consider them rather than stick our heads in the sand and pretend that we know all the answers.
- Criticism is a valid way of participating in the process; we don't all have time to "fix it ourselves".
- Tinkering with the code is something that hardly anyone actually does, except for the core developers.
- Saying that all software should be free ignores the hidden price - including your own ability to make a living from writing software.
- Closed source software can be just as good, sometimes even better, than Open Source.
- Having a lot of programmers "scratching their personal itch" just ensures that a lot of programmer tools get written.
- Sometimes restricting the choices might not be a bad idea.
- Thanks for reading.
- -Neil Gunton
- July 25th 2004
Copyright © 2004 by Neil Gunton
Mon Jul 26 10:28:03 2004 CDT Back to top
TOPICS: Business/Economy; Technical
KEYWORDS: dogma; opensource; techindex
Navigation: use the links below to view more comments.
first 1-20, 21-40, 41-60, 61-80 ... 101-104 next last
Interesting reading since he is NOT anti open source.
To: ShadowAce
2
posted on
07/26/2004 8:38:12 AM PDT
by
martin_fierro
(Zydecodependent.)
To: rdb3; Bush2000; Golden Eagle; TechJunkYard; Nick Danger; Salo; Knitebane; JoJo Gunn; ...
3
posted on
07/26/2004 9:07:26 AM PDT
by
ShadowAce
(Linux -- The Ultimate Windows Service Pack)
To: GeorgiaFreeper
I personally have gotten under the hood to tinker with open source software so it can and does happen. Of course most of those "myths" seem more like "straw men" to me. Are more choices always better? No. But I'd rather have too many choices than no choice. Should all software be free? Of course not.
I'm no fan of the viral nature of the GNU license, though I think it's their right to license things that way if they want. I much prefer the BSD-style licenses and there are certainly major open source projects that use that model rather than the GNU model. BTW, Linux breaks the "viral" nature of GNU in a very critical way, much to Richard Stallman's chagrin from what I've read. If it didn't, people would be talking about FreeBSD rather than Linux. "Open source" is not only the GNU license. In fact, Richard Stallman doesn't really like the term "open source".
To: ShadowAce
Saying that all software should be free ignores the hidden price - including your own ability to make a living from writing software.Well it's the old saying "All software should be free - except mine." ;>
5
posted on
07/26/2004 9:31:38 AM PDT
by
JedForbes
To: Question_Assumptions
BTW, Linux breaks the "viral" nature of GNU in a very critical way, much to Richard Stallman's chagrin from what I've read. Linux is licensed under the GPL, so how can it break the GPL's terms? Or are you talking about how Stallman got his panties all in a bunch when Linus decided to use the proprietary Bitkeeper as Linux's content management system? Those two just do not get along. Stallman is an egotistic ivory-tower type, while Linus is a down-to-earth realist.
To: GeorgiaFreeper
1... Constructive criticism is and should be a valid part of the community process, and telling people that they don't have any right to gripe unless they contribute code fixes themselves is just unrealistic.
Agreed. Contributing to the process could be as simple as telling the author about a hard-to-use part of the UI, as the author wouldn't otherwise know about it. Contributing code or fixes shouldn't be a pre-req.
2... you can "tinker" with the code. But how many people actually do this? Hardly anybody in real life.
How does he know this? He does not see all of the tinkering going on, and "tinkering" does not solely consist of fixing bugs and feeding back the patches. You can customize things and add your own features and even use some of the code for something else. As long as you keep the changes to yourself and don't redistribute, he'll never know about it.
But the point is that you can "tinker" with the code if you want to. You cannot do that with commercial software.
3... I'm totally hung up on the economic implication of the word "FREE".
Enough said.
4... Windows kicks Linux's ass in terms of usability and GUI refinements. It's widely recognized that the Linux desktop is still a work in progress playing catch-up to Microsoft... the "design by committee" that goes on with community projects often results in a more bloated and less focused product that tries to be all things to all people.
5... if Open Source mostly scratches a personal itch, then you're going to get mostly software that scratches the itches of programmers, not end-users (unless the end-users happen to be programmers).
6... So we have fifteen different editors, several different web browsers, several different desktops, and so on. While this might seem like a Good Thing at first (biodiversity), it could also be argued that eventually trying to reduce the choice somewhat for the end-user would also be beneficial.
All good points. The bloat is readily apparent when you go browsing through FreshMeat, where 99% of the stuff there is really crap that I will never use.
Some people have grand visions of the purpose and future of Open Source. Some want to totally defeat the commercial software industry, lure Windows users away from the Monopoly, convert their governments. These are not realistic expectations, IMO.
I don't personally care about taking over the world. I just want something that works for me, and right now, that just happens to be Open Source. It's bad enough that certain commercial software producers are trying to wreck things, but they have a profit motive. There are some areas where FOSS excels; those areas should be emphasized and the infighting should cease. Stallman and Torvalds and Raymond should shake hands and be friends. Is that realistic?
If Open Source can escape its schizophrenia and settle on its own single identity and purpose, it will be much happier. We users and casual developers will be too. And maybe we can get more stuff done.
7
posted on
07/26/2004 10:10:51 AM PDT
by
TechJunkYard
(Hello, I'm a TAGLINE virus. Please help me spread by copying me into YOUR tag line.)
To: antiRepublicrat
Linux is licensed under the GPL, so how can it break the GPL's terms? The Linux license is a variant, that permits linking to libraries and OS elements without invoking the GPL. If this exception didn't exist, then Linux would be going nowhere and FreeBSD would be the darling of the commercial software vendors. All of the standard Linux libraries are LGPL licensed and there is evidence that Stallman wishes the LGPL, which allows commercial software to link to open source code, would go away.
Or are you talking about how Stallman got his panties all in a bunch when Linus decided to use the proprietary Bitkeeper as Linux's content management system? Those two just do not get along. Stallman is an egotistic ivory-tower type, while Linus is a down-to-earth realist.
No, I'm talking about LGPL vs. pure GPL and Linus Torvald's intepretation. You are correct that Linus Torvalds, despite having a die-hard communist father (or perhaps because he did), is more of a down-to-Earth realist than Stallman. If that weren't the case, Linux would be going nowhere fast.
To: Question_Assumptions
I'm talking about LGPL vs. pure GPL Okay, just wondering what you were basing the statement on. Of course, anything but what's in Stallman's little heart pisses him off to no end. The guy just doesn't have room for those who think differently, kind of like the folks at Microsoft, SCO and AdTI.
To: Question_Assumptions
You've got the Linux kernel (what Linus works on) confused with various libraries often seen on systems called "Linux" systems (which are mostly GNU and FSF libraries)
seriously confused.
The Linux license is GPL - it's the kernel, it doesn't have any separately linked libraries. There is no library exception for the Linux kernel. Because there are no separate libraries for the kernel. The Linux kernel license doesn't violate GPL - it is GPL. Period.
Separately sourced drivers and loadable modules, working through the allowed exported API's, and user level programs, working through the classic system call API, are separate and not subject to the kernels GPL license. That this is so is not any "exception" to the GPL license. It is just a statement of where the Linux kernel's GPL ends, and other software's licensing begins.
I suspect you are confusing the loadable kernel module and driver license situation with user level LGPL library licensing.
10
posted on
07/26/2004 10:35:06 AM PDT
by
ThePythonicCow
(I was humble, before I was born. -- J Frondeur Kerry)
To: Question_Assumptions
My main problem with open source is Point 3 from the article - "All software should be free". As a software developer, I kind of scratch my head at people giving away their work. I don't mean the small, but helpful utilities that probably were fairly quick to write. Instead, what about the larger, man-hour intensive programs? I understand the concept that you can charge for "service". It just does not make sense to my capitalist mindset.
I wonder how automobiles would be if car manufacturers followed the open source model. The car is free and all you have to pay for is support / maintenance :)
Maybe we should start an "Open health care movement". Have a bunch of medically inclined hackers to get together and open a clinic. Isn't health care more important than software?
To: GeorgiaFreeper
My main problem with open source is Point 3 from the article - "All software should be free". You don't need to believe that to support open source software any more than you need to believe that all property should be communal in order to support the idea of public roads and public parks. It's mainly the fanatics who think all software should be free.
As a software developer, I kind of scratch my head at people giving away their work.
A lot of open source development comes from college students, academics, or people who do it as a hobby. For example, the PostgreSQL database rose out of a university-funded research project while a friend of mine contributed to the GCC compiler as a hobby.
I don't mean the small, but helpful utilities that probably were fairly quick to write. Instead, what about the larger, man-hour intensive programs?
They are rarely written by a single person all at once. And where they are, that person is usually supported in some way where money isn't a big issue for them.
I understand the concept that you can charge for "service". It just does not make sense to my capitalist mindset.
It makes plenty of sense if you've ever developed a web site. All that really matters to me between using a commercial or open source application server, database, or operating system is how much I have to charge the customer in software licenses before I even start coding. Things like an operating system, application server, or database are, to me, infrastructure, like roads. I don't mind them being public. Just because the government owns most of the roads doesn't mean that you can't do business using them and it doesn't even mean you can't set up your own private toll road if there is justification for the public to pay for it.
I wonder how automobiles would be if car manufacturers followed the open source model. The car is free and all you have to pay for is support / maintenance :)
And I wonder how automobiles would have fared if all roads were private and you had to navigate through a maze of private tolls to drive anywhere. Think about it.
Maybe we should start an "Open health care movement". Have a bunch of medically inclined hackers to get together and open a clinic. Isn't health care more important than software?
Think about how your life would be if everything were in private hands and there was no public property. I know some libertarians think that's great but I don't. And just because I think public roads work pretty well, that doesn't mean I think all private property should be taken over the the government.
To: ThePythonicCow
"Linux", in order to use it, consists of the kernel and several standard libraries. Without those standard libraries, you've got a kernel that doesn't do anything. All of those libraries that are a standard part of "Linux" (the operating system, as opposed to the kernel) are LGPL. Further, I believe Linus Torvalds has no problem with linking proprietary libraries into the Linux kernel at run time. Compare and contrast with Richard Stallman's views on the LGPL.
I know you are making a technical point but my point is pretty simple here. "Linux", as most people understand it, is an operating system which includes several critical libraries, not just a kernel. If everything included in, say, the Red Hat bundle were pure GPL, you would not have companies like Oracle porting their software to Linux.
To: Question_Assumptions
It makes plenty of sense if you've ever developed a web site. All that really matters to me between using a commercial or open source application server, database, or operating system is how much I have to charge the customer in software licenses before I even start coding.
I ran across an interesting phenomenon when I was investigating commercial web hosting for a project I am working on. In my search, I looked into both types of hosting:
"open source" - linux servers, php, mysql
as well as "microsoft-centric" - asp.net, SQL server, Windows .Net server.
The interesting thing was, at most of the larger and more reliable internet hosting providers, the monthly cost was virtually the same no matter which platform you chose.
I would have thought that a "open source" based hosting would be MUCH cheaper since all the software is "free". I guess they rolled a lot of "support" costs in as well. :)
To: Question_Assumptions
Yes - Linux is normally understood to include both the kernel and much user software.
Yes, I was making a technical point.
However I had to make that technical point, to respond to yours. You started with the technical points, by making bogus claims. The legal basis for the kernel's license is not determined by a poll on what most people mean by the word "Linux". It is determined by what is legally part of the copyright kernel source and derived therefrom. User level libraries have nothing to do with that.
You continue to make such bogus claims, when you state:
I believe Linus Torvalds has no problem with linking proprietary libraries into the Linux kernel at run time
This is a totally bogus claim. The kernel (what Linus works on) doesn't link libraries at run time. Linus has no position on doing such, because it makes no sense.
If you wish I didn't keep making a technical issue of what is Linux and what isn't, then don't continue to make false claims that stem from a refusal to understand this technical issue.
15
posted on
07/26/2004 11:29:17 AM PDT
by
ThePythonicCow
(I was humble, before I was born. -- J Frondeur Kerry)
To: GeorgiaFreeper
I'd have to see the services that you are talking about. In hosting, the staffing and building costs actually costs more than anything else and if you are talking about shared servers, the cost difference could easily disappear. But I should also point out that it's the challenge of open source software that's keeping Microsoft's costs down. Remember how cheap Microsoft's compiler and Office applications were when they had real competition? But by all means, use whatever makes the most sense for you. I'm not trying to convert you. I'm trying to explain how one makes money off of open source software.
To: GeorgiaFreeper
I would have thought that a "open source" based hosting would be MUCH cheaper since all the software is "free". I think the original statement in the article was either accidentally or purposefully misunderstood. As I read it, "Free" is meant in the context of free speech--not free beer.
Hence, all software should be free to be able to read data formats, record formats, file formats. This leaves room for proprietary software (MS Office), while allowing other software (OpenOffice.org) to read those formats.
That's what I would like to see as it pertains to fre software.
17
posted on
07/26/2004 11:39:08 AM PDT
by
ShadowAce
(Linux -- The Ultimate Windows Service Pack)
To: ThePythonicCow
The kernel (what Linus works on) doesn't link libraries at run time. Are you telling me that you can't add runtime object code modules to the kernel using insmod? I was also under the impression that things like the ATI proprietary video drivers were linked in with the kernel. Is that not the case? By all means correct me if I'm wrong.
To: Question_Assumptions
The kernel does indeed support loading modules at runtime.
These modules are not libraries - the rest of the kernel does not depend on the code in the modules. Rather it is the other way around. The modules depend on the rest of the code in the kernel.
Since they connect to the rest of the kernel via a narrow API, and since the kernel was not written with specific awareness of or dependency on or derivation from any such module, therefore, if the actual code in the module was not derived from Linux kernel code, then the module is not subject to the GPL license of the kernel, because the module is a separate work.
Libraries are used by what links to them; modules use what they link to. Kernel loadable modules are not libraries, not technically, and not in common terminology.
19
posted on
07/26/2004 11:57:39 AM PDT
by
ThePythonicCow
(I was humble, before I was born. -- J Frondeur Kerry)
To: ThePythonicCow
OK. Fair enough.
Navigation: use the links below to view more comments.
first 1-20, 21-40, 41-60, 61-80 ... 101-104 next last
Disclaimer:
Opinions posted on Free Republic are those of the individual
posters and do not necessarily represent the opinion of Free Republic or its
management. All materials posted herein are protected by copyright law and the
exemption for fair use of copyrighted works.
FreeRepublic.com is powered by software copyright 2000-2008 John Robinson