Open Source - Why Do We Do It?
mikosullivan presents us with a unique opportuinity: "This Saturday, Sep 8, I have an appointment to meet with Congressman Rick Boucher to discuss open-source software. I made the appointment after talking to the congressman at a town-meeting here in Blacksburg, VA. During our short talk he asked a question that (not being a particularly talented public speaker) I found difficult to answer: why do open source software developers devote their time and talents to something they give away? That's the question I'd particularly like to answer: why do we do it? Answering this question may be the key to resolving public FUD about open source. This meeting is part of the
opensourcelobby.org efforts."
Many of us started writing software that we wanted or needed to use individually, but soon found that it felt better to give it to friends who could use it and improve it as well. It's kind of like an ego trip without having people acknowledging your ego, hence not becoming known as arrogant or egocentric (not that that still doesn't happen). YOU know that other people depend on you, and YOUR work is appreciated.
If others improve on your work, you still made it possible for the improvement to happen. If you improved someone elses work, you still feel ownership of making it better. In short, it makes us feel good.
-- Len
... well, I suppose they're related reasons really. But anyway.
First reason: suppose I have a problem with a computer, which needs code written to solve it. Once I've written the code and solved my problem, it seems a little unfair to make everybody else have to write their own solution when there's already one here. So I give the solution freely to friends who ask for it - and it's only a small step from there to putting it on a website for everybody.
Second reason, which I suppose is implicit in the first: I get a kick out of feeling I've benefitted everybody. Not just those people who pay for my code, to the feeble extent the licence agreement permits them to benefit; but anyone with a web browser who wants to download useful stuff off me. By contrast, when I work at my day job I'm always conscious that I'm primarily working to benefit them, and that any benefit that comes to people outside the company is a necessary side effect and not the actual goal.
(Yes, I know I'm not benefitting absolutely everybody, because there are people who don't have computers, or don't want to do the same things as me with their computers, who have no need for the stuff I write. Doesn't bother me; what I like is the idea that anyone who wants my stuff can get it. It's not necessary for everyone in the world to want it. People who don't want it don't have to have it, and hey, that's cool too :-)
Trolling using another account since 2005.
Ego.
People write free software for the same reason they want nice cars and big houses - so people will notice and envy them. Not that there's anything wrong with that, but it's no big mystery.
Quite simply, people write software of the highest quality they're capable of, then give it away, in the hopes that it will become popular, and they'll become a household name (even if only among geeks). People want to be able to go into an IRC channel, or make a Usenet post, and say something like "Oh yeah? You're saying I don't know anything about software? Well, you know vi? I wrote that."
Like woodworking? Build your own picture frames.
"Because it's there." Or, the geek version of it, perhaps, "Because we can."
Which is obviously no different from the views of commercial developers. The turning point isn't why such energy is put into it, it's why you give it away. And that should be self evident: in an increasingly, hideously commercialized society, developers are forced every day to work with things that don't work right, cost exorbitant amounts of money, and make you forego many of what should otherwise be your usage rights at the behest of whoever's selling said thing. Why give it away? To counterbalance the lunacy of current sales policy. Why put so much effort in? No-one likes working with junk.
AHHHHHHH! I'm burning with goodness again!
- Reakk, Sluggy Freelance
We do it for the challenge.
We do it for the sense of community.
We do it because we are altruistic.
These are definatly not motivating factors in the business world.
My mom always said, "Jim, you're 1 in a million." Given the current population, there are 7000 of me. God help us all!
Why does one friend of mine spend a couple hours a week visiting a couple prison? He specificlly is visiting prisoners in for life without parole, they didn't know each other before hand, and they are not relatives.
Why did one guy I work with spend one of his weeks of vacation in Mexico with habbitat for humanity building houses in Mexica? He doesn't speak spanish, has no mexican roots, Mexico is 1000 miles away, and he went in summer, not winter when you would want to leave home.
Why does my dad run the 4-h food stand at the fair, and then take the money he is paid for that and donate it back to 4-h?
Open source by comparition is easy, I need a program, and by going open source I get others to help me with it, making it better. Its not about non-programers using it (note that bug reports are useful and put you as part of the process), it is about programers doing something that alone they would take longer to do. Unfortunatly this obvous answer is wrong, open source has the same reasons at the root as the others.
it's there.
And it's addictive.
And it's how the world should work.
We lead by example.
I can't speak to open source directly, but there are other things that I do that I could do for money but don't. Because -- as astonishing as it may be to some people -- I have found that there are some things worth doing, for which money is inadequate compensation. (Or even, in some cases, would make it less worth doing.)
From the jargon file:
/fuhd/ n. Defined by Gene Amdahl after he left IBM to found his own company: "FUD is the fear, uncertainty, and doubt that IBM sales people instill in the minds of potential customers who might be considering [Amdahl] products." The idea, of course, was to persuade them to go with safe IBM gear rather than with competitors' equipment. This implicit coercion was traditionally accomplished by promising that Good Things would happen to people who stuck with IBM, but Dark Shadows loomed over the future of competitors' equipment or software. See IBM. After 1990 the term FUD was associated increasingly frequently with Microsoft, and has become generalized to refer to any kind of disinformation used as a competitive weapon.
FUD
(my bold)
You said: "Answering this question may be the key to resolving public FUD about open source."
My question is, are you meaning MS-instilled FUD, or is there now a new definition of FUD, for mere FUD that has arisen on its own rather than via propaganda? Or are you just using it wrong? =P
OK, I'm done being a dictionary nazi for the day.
-Kasreyn
Kasreyn: Cheerfully playing the part of Devil's Advocate to hairtrigger
Several years ago, I got so fed up with Windows that I decided to try to write myself an operating system. Very, very basic, not at all fancy, but something I'd have control of, and that I could fix problems with as they came up.
About that time, on a whim I picked up a book which had a Linux CD in the back. I installed it, played around a bit, and I've never looked back.
Now you can only imagine the complete lack of functionality my home brewed OS would have had relative to Linux. But with Linux, I have all this amazing functionality, and with all the control and ability to change things I would have with a home brewed system; the only caveat is that if I do make an improvement, I should contribute it back to the community. That is a small, small price to pay for what I'm receiving.
As well, how many people have the time to write a system like Linux on their own, even if they have the knowledge? Not many. But by being willing to contribute what time they do have to a larger effort, they get a far better system than they could ever hope to have otherwise. Practically speaking, it's a no brainer.
I like getting email almost every day from people thanking me that I saved them so many weeks worth of work and that they appreciate what I've done. I like the attention. I like the community.
why do open source software developers devote their time and talents to something they give away?
Often, it is because they need the software they are writing.
Often, it is because they are curious about a particular technology and "just playing".
Often, it is because of a principled decision to shun proprietary software.
Often, it is because a particular piece of software would fetch no money in a commercial market.
Often, it is to impress chicks.
I like to play children's songs in minor keys.
"We're all sons of bitches now." --J. Robert Oppenheimer
Apart from a few evangalistic & talented individuals I think most Open Source projects are started by relatively young hackers who want to develop their coding skills and try and write an application they feel would better their lives or their workstation.
... I'm sure Source Forge is littered with thousands of "Version 0.001" releases that will never make it to the actually useful stage.
I spent months of my free time trying to hack together a personal organiser/scheduler that could cope with my busy life before I gave up, sold my Amiga, and moved to a more modern platform. I must have started 100 different "projects" that I would be ashamed ever to show anyone *grin*
In my old days as a developer I worked with a guy who contributed a significant account to XEmacs and he done it because he was a power-user who was talented enough to be able to code in Lisp, and he felt compelled to help as he relied on Emacs for coding commercial apps. People like this are few and far between, and few have the comittment and long-term motivation required to take development through to completion, unless they are working in a paid, competitive environment with real customers, deliverables, and deadlines.
The problem is that not enough people band together, start a (semi) formal development programme with solid requirements, and then code/test it to completion
People do lots of things for reasons other than money. A personal challenge, a project that isn't financially viable but is worthy and helpful, simple fame and glory.
All these things are fantastic for open source software, and in the main they keep the projects going. BUT.. they'll only keep the project going while the creative people have enthuiasm for the thing they're doing. If that motivation ever disappears then the project disappears with it.
This, in my opinion, is why the GPL is ultimately bad for free and open source software. The GPL forces software derived from other open projects to remain open. While this doesn't stop people making a decent living supporting and maintaining their work, it does stop the 'traditional' business model of selling your software. This elminates the source of motivation that keeps many projects going long after the original excitement has run out. In the long term, I feel this will stop many talented developers taking projects to their maximum. Truely free software is not restricted in any way. If people want to close the source and sell their work they ought to be allowed to.
Let the flaming begin..
http://twitter.com/onion2k
We relate that to an analysis of the hacker culture as a `gift culture' in which participants compete for prestige by giving time, energy, and creativity away.
The first sentence is perfect. I think the rest needs to be reworded for the congressman: "Many people are not satisfied with the quality and features of software provided by corporations. Many open-source developers see the free market as not fostering the best-of-the-best in the software industry. Most are also disatsfied with the monopoly which is providing most of our software options. These feelings motivate them to make high-quality, useful software."
Developers: We can use your help.
In all the cases I've seen, and in my own case, the answer is that we have *some* interest in the outcome of our effort. Be it that we want to write a piece of code 'better' than we've seen it written. Be it that we simply have it in our heads to do a certain thing.
However, you state it, it's important to note that we write code because we want to see the outcome of writing that code. We write open source code because cooperation is often preferable to competition.
As to not getting much/any monitary remuneration from our work in this area, when's the last time you got paid to do yardwork around your own house? Did you ever get tipped for washing/waxing/detailing your own car? Most likely not, but you got something out of the activity, yes?
If you'd just insert another column in those spreadsheets you use to track revenue. Ok, now label the column "Satisfaction"....
Happier?
It's a great way to market yourself and looks impressive on a resume. :-)
It's a great way to learn design and programming.
And it's definately egoenhancing
I know it sounds corny, but it's true.
I want to do something bigger than myself, something that has a real potential to help people in a serious way. I want to leave behind a legacy of good will when I'm wrom food.
I realize that programming free software is perhaps not the most noble thing one could possibly do, but it is what I'm good at. Free Software gives me the ability to use my skills as a programmer to do something really great, even if it is small in the big picture.
Laugh at it if you want, but that's the reason I write Free Software, not because of ego, or because I can, but because I believe that I am helping people --and that makes me feel good.
Jordan Bettis
``Wherever you go, there's another stupid sigfile quote.''We "do" open source because it's a better development model - the end product is stronger
... a press release about Linux being deployed as the OS for a messaging system on the NYSE does not mean everything is going that way.
I'd say this is a rare exception rather than the rule. Don't confuse the world of commercial software with IIS.
There is no evidence "more and more" critical systems run on Open Source
Mozilla is around the biggest Open Source project I can think of: where the hell is it going? It has no focus!
Politicians make a decent salary, but generally much less than they could make in private industry. You might just as well ask the congressman why he puts his time and energy into public service.
The answer is probably similar for Open Source/Free software people 1) there's a certain satisfaction in doing something you feel is worthwhile, 2) the desire to leave the world a little better than when you found it, 3) recognition by your peers is very motivating, 4) even if you don't make money directly, it can help with your later career.
Another thing to keep in mind is that most of us entered the IT field because we have a passion for the technology. The reality of most corporate work is that we never get to do the really cool stuff that we dreamt about in school - real work is pretty mundane. Working on something more interesting on the side lets us do the stuff we dreamt of doing when we entered the field.
It is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. - Abraham Maslow
I know a retired Grumman engineer who builds model planes in his basement. Nobody seems shocked.
I've got a friend who builds model trains in his basement -- not for profit! Imagine that!
My sister likes to bake things. And get this -- she does it just for the sheer enjoyment! Can you believe it? The mind boggles!
--
Mod up a post Rob doesn't like and you'll never mod again
I've found that, as I get older, money isn't the all pervasive motivator I thought it would be.
Once I had enough money to 'get by' on, the raises didn't have as big an impact on my life. I found that I wanted to do things not to increace my financial bottom line, but for other motivations.
Why did I give away my last car? Because it was 'worth more' to someone that didn't have a car than the 'financial worth' I could get from selling it.
Why do people 'donate' to the open source movement? Because they're motivated by things other than money. That's a hard concept for some people to accept.
"Draco dormiens nunquam titillandus."
I'm developing open-source software because I enjoy programming. That's it. And it is fun to work with other enthusiasts, unlike office programming where most developers don't even know how to format a disc (at least in the company I work, it amazes me how little all those programmers know). The reason to publish the source is simply that it increases the chance of being known as a programmer, it enhances my "fame", if you'd like to call it this way. Others are able to correct my errors and mistakes, so I also learn WHAT errors and mistakes I make. It's no use writing some closed-source app as a hobby that is full of bugs, design flaws and release it as Shareware or whatever, 'cause noone would use it. If it's open-source, it gets corrected and grows faster, thus gets more useful. Marc Haisenko The 3Dsia Project (http://www.3dsia.org)
because with humans, after you get past
the first tier of needs (money, security,
place to eat and sleep), you get higher
level needs kicking in, and those include
needs to contribute and be part of a community.
Social Threefolding
I've done a lot of different kinds of volunteer work. I like it because it makes me feel like I am helping the world be a better place. Writing free software gives me the same feeling, only better.
Why is it better than volunteering at a school or helping set up a public education event? Because those things can only reach a small number of people and then they fade away. Open Source software can help many many people from now until... well, forever? And what I do can either improve something that already exists or it can become the basis of new things that help even more people.
On a purely selfish note it is also a way to advertise your expertise. And, a great way to learn. What better way to learn than to write something as well as you can and then expose it to the world and be told what is wrong with it and how to fix it?
Stonewolf
Well, if I was Willie Sutton, I might reply "...because that's there the money is", but the truth in the matter is that I enjoy the challenge and mental activity in the same fashion that my friends enjoy the New York Times Sunday crossword puzzle.
It's a game with myself to see how well I can write a program to do foo, and it builds my skills and cognitive thinking abilities, from which I do earn a paycheck from. If someone else can learn from my example, or find use of it, or even build a billion dollar industry from it, great!, just send me a nice thank you card on the way (if it's the billion dollar industry I'll settle for a Z8 from BMW, red please).
III.IIVIVIXIIVIVIIIVVIIIIXVIIIXIIIIIIIIVIIIIVVIII
Basically what it comes down to, for me and me alone, is one of two things:
Obviously, the first motivation applies more to small projects while the second applies to larger projects. There's a little bit of "scratch an itch" about it, maybe a little bit of altruism, maybe even a little bit of ego (in assuming that the world needs my brain-droppings). What is absent, for me, is any thought of reward - either monetary or otherwise. Sure, it's wonderful when I find out that my code helped someone, or that they learned something by looking at it. It's also wonderful when someone else builds on your ideas and creates something else that's cool. I won't deny the "rush" that comes from these things, but it's just not why I do it. When it comes right down to it, I do it because I can.
Slashdot - News for Herds. Stuff that Splatters.
I was thinking about this recently when checking out a news story on ZDNet, and reading someone's comment that "Open Source was communism".
The statement irritated me, but I didn't know why. Which is usually when I start doing some research, because not knowing why I'm irritated means there's something important to figure out.
I use open source in my own work - from development, web pages, graphical images, and the like. I could say "because it's cheap", and that would be true. I don't have a lot of cash, so most free (as in beer) programs appeal to me.
But there's two big reasons why I use Open Source software:
1: Free (as in speech) idea. Take Sun, who's setting up StarOffice to use XML as their default documents. XML - an open standard. What happens if 10 years from now I want to open a file, a story, an article I wrote in XML? I'd be able to read it, because I wouldn't be worried that MS went out of business/Caldera dropped Wordperfect/Lotus died out, or that the document editor I originally wrote didn't work on my new OS.
OS is democracy in its truest form (not like the US, which is a *republic*, thank you very much). Everyone has a voice, good, bad, or indifferent. It can't be bought out by business (which tries to force customers down a path to make it more money, sometimes when the customer doesn't want to go that way). It can't be subverted by government. The users, and the users alone, have the power to decide if a program lives or dies.
OS is also true innovation. The idea that "necessity is the mother of invention" applies here. If someone has that "itch they need to scratch" (like a program to edit tons of graphics from the command line (thank you ImageMagick!), it gets done. And just like the Internet is a place where you can find people that have the same interest as yourself, you can always find someone who has that same itch they need scratched, and sometimes people who are better than you at scratching it. (Which usually means you've got to have some humility to work with OS software.)
2: Most people comment on how OS software is so stable, and I've proven that time and time again. Why so stable? Because everybody can see the mistakes. Granted, your "ordinary users" (aka, non-developers) won't care. But to folks who's jobs deal with security, or reliability, the capacity to see why your program broke down and, even if you can't fix it yourself, at least tell other people why it happened so the developer can fix it makes the system that much stronger.
Right now, OS has overcome the first few hurdles of any system. First we had programs that work, now we have programs that work well. People have seen the need to make these programs more user friendly, and I see this being the next stage of OS software (companies like Mandrake are really setting good examples here). Interfaces will evolve - but they will evolve well, because thousands of voices will decide what works and what doesn't.
In the end, I truly believe that Open Source programs are the way to go. It makes business sense to do so (now I've harnessed the collective brain power of a *planet* to help with my projects - I just have to let go of the idea that I *own* the software, and I'll get software that will make my business better). It makes personal sense to do so (I know that my improvements to OS programs will help other people).
Of course, I could be wrong.
52 Weeks, 52 Religions with John Hummel
(any lawyers out there want to add to the list?)
A congressman will be familiar with lawyers, and probably has a legal background himself, so comparing open source to legal pro bono work will put him on familiar ground and give you a shared context. Eg, ask "how would you feel if a big law firm called Pro Bono work 'unamerican'?")
Of course there are also all the commercial reasons why companies produce open source code. Its worth emphasising that many open source coders are actually employed to do it, so its not just a geek hobby. See Opensource.org for all the commercial reasons for releasing open source.
Paul.
You are lost in a twisty maze of little standards, all different.
So I can't offer insight on why developers do it, but as a user, I use it because it's better than paying for software that doesn't and CAN'T fulfill my needs because only a limited set of developers at the 'company' are allowed to make changes. I can't wait until the full Kapital release comes out. Yes, it's proprietary and a paid for program, but it's one of the last reasons I'm stuck with Windows for important personal stuff. And the KDE developers have so much other really wonderful completely free stuff, that paying $50 for one program out of an entire desktop full of OpenSource software is a very minute price to pay. This isn't meant to be a Windows rant, it's more of a slashdottian comparison of why many here find Linux and OpenSource in general so much better.
IMHO, there are only three real reasons why people contribute to Open Source:
- The GPL and similar licenses force you to share your enhancements. Sure, you can keep the binaries to yourself, but if you want anyone else to use it, you must give them the source code. There's no way around that.
- Open Source developers understand that the only way Open Source works is if people contribute to it. So if you benefit from other people's work, it's only fair if you contribute to it yourself (assuming you're a programmer). If you use GPL software and create your own software, you understand that you promote the idea of Open Source every time you create new Open Source code and distribute it. It's a version of "voting with your dollars", except you're actually "voting with your code".
- Most programmers realize that selling software they develop is difficult. The marketing and support issues are time-consuming and expensive. If you want to develop a piece of software that you don't think is going to sell well, you may as well make it Open Source. You lose almost nothing, and you benefit others. Reasons for writing this kind of software include:
- You need the software for yourself, and no one is going to write it for you
- As a hobbiest programmer, you just like writing code. Some people like ham radio, others like building models, you like writing code.
I don't relieve belive the "prestige" factor that much. I don't think programmers out there really write that much code just so that they can impress others. In a meritocracy, that sort of thing isn't generally acknowledged.And the men who hold high places must be the ones who start
To mold a new reality... closer to the heart
That's why I feel obliqued to return something to the community that provides the software I use. Others do webdesign, translations of documentation, organization of shows, writting new software, whatever. I'm rather good (I think) at writting software, so that's what I do.
Regards,
Tobias
Regards, Tobias
NPR had Salman Rushdie on The Connection today. A caller asked why some of his novels were, or were not, set in India. After circling around the question a bit, Rushdie said
In the end, you write the book that grabs
you by the throat and demands to be written.
That's more or less how I feel about writing open source software.
Why do people paint? Why do amateurs play an instrument? Why is it that they are, most of the time, much more talented than the professionals?
The quote is not perfect, I didn't write down his exact words but the spirit is here. We are amateurs. We are what Rock'n Roll was before the major music distribution companies took over the business and squeezed everything we loved about Rock out of it. We are amateurs, we tour the country in buses, not planes. We do it for the love of the game. If we get good at it, money and chicks start coming, that's good :-) but that's not the goal.
Haim.
Looking for a great online backup: Green Backup
I'd say the reason I continue is that I enjoy coding and software development, and since I don't work as a developer, or in IT at all, joining a project is kind of like the coding version of those sports fantasy camps -- I get to work, hang with and learn from some really skilled people and at the end, my work is on CD's and hard drives all over the world.
I don't do it because I hate Microsoft, and I've never met anyone who does. If they're motivated by hate, it's of a competing free software project! ;-) I don't do it because I want to destroy paid development and put people out of work, and I've never met anyone who does. (I do wonder if I coded for a living, whether I'd be so willing to work for free.)
Eric Raymond says people work on free projects to get girls. Eric Raymond should generally be ignored.
Now, if I can ask a question:
Answering this question may be the key to resolving public FUD about open source.
Huh? How?
Need a Python, C++, Unix, Linux develop
Here's a quote from another Slashdot-linked website that deals with this idea:
When does open source make sense?
Who knows who wrote the paperclip in MS office? If it where open source, you could go to his house and shoot him.
First off, every person has his or her own motivations. So this will never be a complete or even very acurate list.
;-)
;-) A good story on this is Michael's reasoning to the Mexican goverment.. they could save over 400 $ USD by using linux instead of Microsoft's products. For companies and countries alike this can be a big plus.
.. compare our cute Tux pengiun to the windows flag ... you have to admit, its a lot more cudable right!?
However, in my experiance and perspective, the folowing factors play a role:
* Learning abilities in Universities teaching OS design need good tools and source to show what an OS is, does, and develops over time. Linux is an obvious posibility here
* Learning to program. A newbie programmer (taking classes, or as hobie) need a furtile ground to learn the tricks of the trade, they also need skilled people they can questions, and they need 'real life projects' to truely get into it. Ofcource open-source provides all of the above. Gnome for C UI programming, KDE for C++ UI programming, and all base GNU tools for low-level C coding.. Also, linux offers a wide range of languages (from bash, awk to fortran, pascal, c, c++ and java)
* Peer review. People love to hear they are genious. People love to be apreciated for there work. Open source offers the posibility to achive just this.
* 'The itch'. A populair expression in open-source development, often cited as a big reason. if one is using a program which is 'almost right', but has this one anoying bug, or this one feature missing, in open-source it is quite 'easy' to fix it, or add to it. Basicly it allows to 'scratch that itch'.
* Security. Many people are afraid that bugs will be left unfixed in comercial products (and not be able to do anything about this, see above). So they prefer software where many other hackers have looked at. Also the chance of back-door's are a lot less likely in opensource projects, its very difficult to hide virii or back doors in source code
* Political or ethical points of views. The its-not-microsoft factor can be important to some people. They hate the bloat, or the blue screen of deaths, or just think bill gates is not a nice person.. Whatever the reasoning behind it is, they think 'big comercial company' is bad and 'underdog' is good.
* Support for standards. Open source almost always creates open standards. Allowing, by its very nature, the competition to build a competing product, which is interchangeble at any document or protocol level. You would 'never' see a open source project create a 'properitaire standard', or modify existing standards without publishing every bit of documentation and source code. Remeber, this is how TCP/IP, ethernet, the Web, ftp, dns, etc came into existance. Had these been closed propriatairie standards, the internet as we know it would not have existed!
* Innovation. By its very nature, open source stimulates a darwinistic development. Several projects who achive to do the same thing, and the best one will recieve the most support and resources, thus growing faster and getting even better. It also allows for totaly new and crazy idea's to be invented and implimented, and who knows, it might be genious, and catch on like wild-fire.. Many big companies try to simulate this in 'brain labs', but they will never achive the same level of darwinistic development, since the company can only release one product, and has to 'play it safe'
* Cost. linux and many powerfull tools that run on it, is free. For home users, students and poor people alike, this offers the only choice to have a good computing platform. For other people it just saves a lot of money
* Support. There's a lot of support (mailing lists, open bug systems, friendly helping people) available for almost all linux software. This makes learning and using a lot easier.
* The ability to 'Change the world'. An individual can not steer the direction Microsoft or any big company is going, and thus cannot control the direction of computing in general.. In linux they can! By being able to contribute idea's and write your own versions of tools, or invent new ones, one can now 'steer' the way computing will work in the world. So it allows an individual to 'matter' in the bigger picture.
* Last but not least
Anyways, i'm sure there's more a lot of other points out there, but for me, these are the reasons why i like open-source development.
The question was: Why do you make Open Source Software, not Why do you make software. Many posts in here refer to the main reason:
Because I have a problem that needs to be solved
Actually this is the reason for developing software, not specificly opensource or closedsorce, free or commercial.
The simplest answer is: we don't write code for free. Almost all programmers who work full time on an open source project are paid for it. There is a limited number of large-scale, successful open source projects (gcc, linux, apache, xfree, mozilla, gnome, postgres, and a few others). All of them have large sums of corporate or university money to pay professional programmers to work on them. Mozilla has _always_ had significant funding; gcc has had significant funding for over 10 years (cygnus); the linux kernel has $1 BILLION pumped into it a year by IBM. This myth of "hordes of free programmers collaborating over the internet voluntarily" is almost entirely false.
Next time you look in the "acknowledgements" section of an open source project, look at how many people actually contributed more than a few lines of code or a bug fix. Generally, the number of people who have _significantly_ contributed is less than 5, and those 5 are usually _all_ paid to do it.
There's a business case for it too, there's a reason IBM has suddenly become all about Linux, and it's not because IBM is stupid. It's because they know how to make money off of it.
Second, take everything business management theorists have ever written about employee motivation and team cohesion. You might notice the theme "respect" repeated over and over again. There are many extremely good programmers in companies that don't release code, but there is still a wealth of top-notch coders who publish open-source code, read other people's code, and provide criticism to other coders. It is a big kick to hear an awesome coder praise your work, and this community bears a strong incentive to try to impress them.
Third, one gets to communicate one's successes and struggles to the outside world. Did you spend two weeks writing a really complex block of simulation code? If the project is closed, then people only see the little button to trigger the event. If the project is open everyone can see how cool you really are. Is this important? Compare to other professions -- would doctors or lawyers agree with closing all of their work, and never sharing research?
I am currently running 4 open-source projects, and contributing to 3 more. I work way too many hours, but the 3 previous points basically summarize my motivations and what I get out of it.
After college, most of us do not find ourselves in an environment that encourages education. Working with OSS helps build your own educational environment. And there's something else: somewhere in the Bible Christ encourages some multitude not to "hide your light under a bushel". (I am not Christian; perhaps someone else can provide the quote.) The language is archaic, but I think it has meaning in that from the moment I exposed my code to the outside world I improved as a coder. For whatever reasons, first among them being the consideration of others in previously private efforts, I have found that writing OSS code makes me more professional.
Oh, and please thank Boucher from some pleased Californians.
1. Sick of paying outragous prices for software.
2. More resources to go to to solve problems when working in open source OS'es, Verses M$, and MAC which hide things.
3. If my code could be helped by changes to the core of the OS, I can write that change and even propose it to be included in the OS for everyone.
4. Same for Applications such as apache, if I write a mod for Apache it might even become part of Apache.
5. Get recognised my work as a person, not as a nebulous group that might or might not get a personal credit.
6. In somecases becuase its the only choice, if i write a driver for some companies hardware so it will work in my Linux Box I certainly can't try and sell it, they would Sue me over IP rights. Byt if I give it away well then I think thats much less likely anyway.
7. Because wide colaboration by many people makes for better code, less bugs overtime, and dfinately better testing by a diverse set of hardware/software conbinations.
8. My code could be useful elsewhere, if I write a program for windows, if probably only ever going to run on windows. If I write a program for Linux/BSD/or another Open OS...well it will probably run on Linux/BSD/Solaris/Windows/or something thats not even there yet, it might get translated into lanugages I don't even speak.
Power Corrupts,Absolute Power Corrupts Absolutely, leaving one person(group)in charge is absolutely corrupt.
Nuff said. ;)
He tells them that open source is how every other industry works.
When I buy a car, I can take it apart and see how it works. I can even modify its workings. If I tried to fix a bug in a closed source program I could be sent to jail per the EULA.
It is important that lawmakers know that open source is not just a hairy programmer working late nights in his spare bedroom on a program he intends to give away. There are companies out there that have fully embraced open source because it's better for the consumer.
I'd rather have someone respond than be modded up.
Because it's for the betterment of our knowledge.
Same with Open Source. Not the only reason of course, but it's a good way to start a conversation explaining what open source is.
Selling of cookbook containing recipes is another good analogy.
By withholding source code and the freedom to alter it I am shackling those users who use my software to the degree that they come to rely on my software. Those shackles are as difficult to break free of as my software is difficult to replace. This is at the heart of why many open source advocates dislike Microsoft software.
The reason I would want to write open source software is rooted in the basis for my wanting to use it.
When I purchase a software license for my company I get a shrink-wrapped box with some CDs inside. I install the software (after perhaps contacting the software vendor and getting a license key to unlock it). I attempt to read the documentation to learn how it works, often times the available documentation isn't very good and I need to go to a class to use it. While implementing the software package I have to figure out how I should change the way I do things so that my practices comply with the methods available from the software package. Many things I would like to get done are not possible with that software package because it doesn't provide those features. I'm locked into whatever they give me to work with and I have very few options for customizations because of this.
Now this software package comes with support that I can renew every year. If I keep renewing my support I can get upgrades as they are released. If I chose not to upgrade to the newer version eventually soon I will no longer be supported. I have to upgrade the package on the vendors schedule not my own, because they are the ones that determine when support runs out on the version I may be using. Since there software has a minimum system requirement I also have to continue to upgrade the operating system that I am running and therefore the hardware that my systems are running because the new operating system is progressive and doesn't support the older hardware.
This upgrade cycle is necessary to maintain support from the software vendor. Software contains bugs. This is true of all software (except perhaps certain "Hello world" applications). Since the vendor is the only company that has the source code they are the only ones that can support the software. They control something that I come to rely on for my business.
Now open software generally (by my experience) has better forums to discuss software problems and how it's used. You also have the option of going into the source code and making customizations that you need. All of the other people running the software also have this option. Chances are if you didn't have time or the expertise to make those changes or customizations to the software someone else might have. This is because many people have similar needs. Now if those people who made the customizations also contributed their changes back to everyone else you can use those contributions.
Also if you need your open source software to support your older system (which may be doing its job just fine and would otherwise be a waste of money and resources to upgrade) you have that option. Chances are if you have this need other people do as well and you all help each other out.
These are the reasons I use open source software.
When I write software and I release it open sourced my software becomes more useful by other people (who are also using it) who contribute to it and add back to my product. I get to enjoy their improvements as well. It's a two-way road.
I'm only 16 years old, and my contribution so far has been quite minor (only xml2swf is worth mentioning), but I shall list my reasons for it nevertheless:
First of all, it's about art. Many of the programmers do not treat their work as a job; it is rather a craft, and sometimes - though seldom - an art. And any craftsman has got the urge to create, to somehow demonstrate his skills and knowledge in front of his colleagues and other people. Secondly, it's about training: writing software is the best way to learn a technology, and a good program is a nice addition to anyone's CV or portfolio.
So far I'd described the reason why people write software on their own. The reason they choose to make it open is a matter of culture. Most of us can't expect to make a significant profit from the code written out there. Therefore, it is very easy to make a willingful concession of the slight possibility of a monetary gain in favor of the honor and the feeling of helping someone.
Warning: dogma ahead. But sincerely-felt dogma.
I got my first computer only a couple of years ago. In the first week
I had it, I spent about 48 hours (20 consecutive) on the GNU website,
reading and re-reading everything they had, and finding out more about
the Free Software movement. The ideals of the Free Software
Foundation correspond very closely to my ideals for the world at
large. Although I last wrote a computer program in fifth-grade LOGO
class, I decided that I wanted to do my part, and slowly made the
transition from MacOS to GNU/Linux (first LinuxPPC, then Debian).
I think the freedoms that GNU describes -- to use, study, redistribute
and modify -- are essential, and because of the hard work of many
hackers, they are now within reach. I knew I wanted to write only
Free Software before I even knew how to code. I now have a job that
lets me write Free Software, and I will never take a job that requires
me to write non-free software. Maybe it was easy for me to make these
decisions because I made them before I learned to code.
Well, during the transition period between MacOS and GNU/Linux, I used
BBEdit, a good-but-proprietary editor, on the MacOS. When you edit
HTML with it there's a little check-box to "Give BBEdit Credit" --
embedding a little meta-creator tag saying that you'd written the HTML
in BBEdit. I always had to uncheck that box, because I was not using
BBEdit in a manner compliant with the terms of its license -- I had
not paid for it. Later, using the GIMP, when I saved an image in a
format that allowed embedded comments, I saw an option to say "Made
with the GIMP". I reflexively moved to uncheck the box -- after all,
I had not paid for the software. Then I realized that I was still
using it in compliance with its license, and I proudly, and giddily,
left the box checked: Made with the GIMP.
I now use, write and recommend only Free Software. I do it because
I'm a pretty hard-line GNU devotee, so that's obviously why I don't
call it "Open Source". I worry that there might not be enough people
who cherish the freedoms of Free Software, too many who think that
it's just cool and convenient. What the FSF, GNU, and other Free
Software projects have achieved is amazing and incredible. I write
Free Software because I believe it must exist, and I want my actions
to be in line with my beliefs.
Just as there are a myriad number of reasons why a person runs for office, a politician embodies a desire to help people. An open source programmer has the same instinct but expresses it by coding instead of politicing. Open source is a manifestation of altruism.
(Disclaimer: I haven't released anything I've written as PD in about 7 or 8 years, and I have never released anything under licenses like GPL or BSD. But I'm not hostile to the idea; I just haven't been doing it.)
Some reasons I can think of for a developer wanting to release things this way:
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
And the cathedral and the bazaar is too long and complicated for him to read.
Talk about a prototype and a fan club. Somebody somewhere makes a small simple demonstration of an idea, for the same reason stamp collectors catalog stamps and ships in bottles get built.
This prototype takes maybe an afternoon, maybe a week. Maybe a few months. It's some guy's hobby project, and they're proud of it.
Then they release it to friends, who find it interesting or useful, and pass it on to THEIR friends, until a fan club forms around it.
The fan club is full of people using it, admiring it, improving it. These are the same kind of people who put on star trek conventions and publish fanzines, and they can organize a LOT of effort when they try.
In the case of software, the prototype acquires new code like crystals around a condensation nuclei, (or amendments to a bill in congress). It's there, and people want one more feature, idea, color change, or bug fix, so they tweak their version and then submit their changes in to the fan club so it goes into the "official" version. (Which is official because the fan club is where the fans are.)
The central maintainer of the project (who may be the creator or the prototype, a designated successor, or just a group of senior fans in the fan club), acts like a goalie. Their job is to keep stuff OUT of the next release of the project. They can't make anybody submit stuff, but any fanzine has a slush pile of submitted poetry that's ten times what they can print. And the vast majority of it stinks. (Sturgeon's law: 90% of everything is crud.)
So the editor's job is to veto stuff, accepting only the 2% or so that's worthy of going in to the project, which will really improve it, and which is worth the effort. (THAT is where a lot of the quality of open source comes from: the presence of ten competing implementations of any idea and the freedom to reject nine of them.)
This is how open source is organized. People write it for the same reason young children play with "star wars" action figures making up their own stories. They'll do it for weeks at a time, because it's what they consider FUN. You may not see it as fun, but the same could be said about stamp collecting, rock climbing, or golf.
Ask yourself why there are so many millions of web pages out there, mostly with pictures of people's cats? What does a search engine like Google do? Fight off sturgeon's law by finding the 1% that's interesting. This is what book publishers do wading through the slush pile, what music publishers do sorting through demo tapes of garage bands. There's a reason the first really successful internet business was Yahoo.
This is nothing new. The internet simply reduced the costs of doing business to the point where fan clubs (which have ALWAYS made superior stuff because they care, but which can't afford manufacturing facilities to make everyone a copy) can get their stuff out there where everyone can use it.
Rob
Remember history. The internet itself came about from software developed as free and open source by people who devoted their time and talents to something they gave away. Some examples include,
- The BSD tcp/ip stack
- Sendmail for email
- Bind for DNS
- NCSA httpd and browser for the www
- INN nntp for usenet
The benefits of open, free software like the above examples were immense both economically and socially for both businesses and individuals.
What would the internet look like today if the applications and protocols necessary had been developed as closed source and proprietary? The benefits to all of society, corporate and private, would have been far, far less.
Free, open source software that is being developed today by people who devote their time and talents to something they will give away will continue to benefit everyone into the future, just as the free open source software developed yesterday continues to benefit us all today. Isn't that reason enough? Isn't that a worthy tradition to uphold?
I enjoy writing code because it is, in many ways, a professional implementation of building a better mousetrap. The emphasis is on making something that performs a task better, faster, more reliably, and credit is given for ingenuity and resourcefulness. I find this appealing. Moreover, unlike most things, software design (or at least algorithm design) takes place almost entirely in mindspace, and as such provides nearly endless possibilities for intriguing mental exercises. I find immense reward in coming up with an elegant solution to a problem.
Aside from the coding aspect, there are practical concerns that make open source attractive. Chief among these, in my opinion, is the fact that if it isn't the way I want it, I can fix it. To draw a relatively poor analogy, I once took a file to a plastic TV set case so it would clear a hinge in the cabinet in which I wanted to put it. With open source software, I can file the case; if Microsoft Office doesn't fit in the "cabinet" in which I wish to put it, I am out of luck. Worse, if I want it and it doesn't work on my system, I am completely out of luck; if it is open source and I am up to it, I can port it on my own. There's an issue of self-sufficiency and independence here.
Finally, I am loathe to give control in my life to someone else. Using proprietary software does this. What if Microsoft stops supporting a product? What if they reduce backwards compatibility (Office 95->Office 98 is still causing me headaches when I pass documents around)? With open source such a scenario is unlikely; anyone who was to make such a move would quickly be stopped by a community effort that would negate all effects of the action. Consider, for example, if the StarOffice 6 were not compatible with 5.2--how long would that last?
There are many appealing things about open source, and I think that's reflected in its rapid growth. Were I you, I would also point out that open source will never replace proprietary software so much as augment it. I don't view the open source movement as an anti-corporate leftist group so much as a group of often like-minded developers who recognize the inherent advantages of the open model in many applications. If we can make our legislators at least conversant in the right areas, I think the cause of open source will be greatly advanced.
-db
I can't believe I haven't seen this reason yet, and to those of you who think it isn't at least a partial factor in your own contributions, think about it carefully.
The reason I'm speaking of is to get your name known, be popular, get famous, etc. Whatever you choose to call it, alot of us have a desire to be known for doing something, to have our name mean something to somebody. It makes us feel more connected to the world to know that we are known and liked by others, even if we'll never see or talk to those people.
Yes of course people are genuinely philanthropic with their time, didn't mean to suggest otherwise, but please don't deny that fame isn't a factor also. It makes the whole thing sound more believable to an intelligent politician like Boucher who is apparently trying to understand the motives and drives behind the movement.
That would make sense if you actually had to buy any software with a new PC. The fact is they throw in tons of stuff so most people can do something when they turn it on. Word processing, burning CDs, games, slideshows, graphics programs... I recently bought a Sony VAIO for $600 that had all that stuff loaded up, included in the cost. That's what the bloody anti-trust suit is about, that MS gives you things free to wipe out their competitors. The reason the gov had such a hard time selling it was precisely because it was really hard to demonstrate harm to the consumer.
Oh, and by the way the prices of PCs are so low that compared to a few years ago you could buy $2k of software before you got anywhere near the purchase price of the hardware.
What you're saying is you're not willing to pay the programmers that do all this nice work for your lame ass to use.
There are lots of great reasons to use Linux, but I'm afraid the "free beer" part is (usually) much less important than the "free speech" part. When MS ups the ante to the point where it really hurts people THEN we'll see a more serious migration (especially in corporate settings) to Linux.
The revolution will NOT be televised.
There are many good reasons sent in so far, but this one has been missed. Many commercial entities willingly share mutually beneficial actions for free. The classic example is the free sidewalk clearing. If each store owner clears their portion of the sidewalk, all benefit. It is silly to charge a fee.
Much of the bug fixing and feature enhancement falls into this category. We each fix our own and cooperate in developing the features that meet our needs. It is simpler and cheaper to just share these for free instead of wasting lots of money on lawyers.
This is also why the wars over licenses (like GPL) get so vehement. It is things like the GPL that keep this sharing of effort from benefitting the parasites. Local merchants associations get vehement about stores that don't take care of their portion of the sidewalk (e.g. freeloaders). Software developers care about the license to deal with freeloaders.
That's a great answer to the question, and you could extend it like this:
"You know how some people just enjoy building model trains in their basement? Imagine what they would do if they could share their models... or link their tracks to others' tracks, in other basements. Imagine the excitement they'd have and how perfect they'd want their model to be. You'd almost certainly have configurations that would rival the original engineering decisions that go into building actual train yards, wouldn't you? Just like that, the net enabled a lot of model builders - i.e., people who enjoy programming - to share their models with every other model builder in the WORLD. So it's not surprising they built some amazing things, including the most stable large-scale operating system and the world's most-used web server."
I think people would instinctively understand an analogy like that, and it makes for great advocacy.
Why do is there open-source software (OSS)? That's easy: the same reason anyone does anything else, rational self-interest.
If I have a piece of OSS, and it doesn't do what I need, I change it, or pay someone else to change it. If I improve the program, it makes my life easier. For that single outlay of labor, I have daily benefit. So there is plenty of incentive for me to tinker with open-source software. That's why most people who write OSS also use it!
Then I can pass my changes along at almost zero cost, and by scratching once I've cured both my itch and maybe the itch of many other people. To put it in economic terms, OSS is a public good with no "free-rider" problem!
You see, someone asks why open-source programmers "give away" their software, they are falling into a trap that the MPAA, RIAA, and Microsoft have set. You can't "give away" an intangible thing. You can duplicate it so that someone else has a copy. The writer still has what they are giving away, and they still hold the authorship rights.
Of course, one might ask, why pass along the changes? Why not charge for them? Why not hoard them, and dole them out for a fee, even if it would probably be much easier for to just email them to the author or post them on a web site? Well, for one thing, many of my changes might be relatively small, or my program might have limited functionality and I'm hoping someone else will flesh it out. Nobody would be willing to pay just for that. Whatever price I charge for it, someone can come along and do it cheaper. So I might as well pass it along in the hopes that someone will improve it further and then I can benefit from that. Besides, software is often like math: once you find the solution to a programming problem, that's it, there's no need to have everyone re-invent the same thing.
You might also ask, where does the big innovation happen? It seems like OSS produces just incremental evolution, just enought to get our jobs done, not revolutions that change the way we live. My answer to that is, where does it happen now? All the big software companies have been making software the same way for years. Microsoft's best innovation was the licensing scheme they used when they started selling their OS pre-installed on computers. One big innovation was the internet, but that was initially paid for with public funds. I think the big innovation can happen anywhere, at any time, in a proprietary software company's labs, or a students bedroom. But for the small incremental innovation, nothing will beat OSS.
OSS is just an example of a free market: software is priced based on the marginal cost of zero. The software monopolies you see around you are flawed free markets.
There is another less utilitarian but vitally important reason for OSS software which, namely Freedom. I would like to live in a world someday where I can buy a computer and not have to buy a certain company's operating system, whether I want it or not, or at least be able to sell the operating system if I don't want to use it. Just like I like to buy a car, and then sell the tires to replace them, or choose the brand of gasoline, or the garage I keep it in, or the mechanic who works on it, without violating a license agreement. I like to have the freedom to alter and share my programs, and the freedom to be paid for this service. We have many freedoms like this with our houses, televisions, food, etc, but not with our software.
It seems companies have needlessly implanted their proprietary software with the drawbacks of physical things: only one copy can exist at a time, only one person can use it at a time. And they've also taken away some of the freedoms we enjoy with physical things: the freedom to take it apart, the freedom to change it, sometimes even the freedom to sell it to someone else. We lose on both counts.
People like Freedom, they will fight for it, whether it's obvious like freedom of speech, or subtle like software freedom. OSS is a very easy and legal way to fight for this freedom, and to get around what many people feel is a very flawed system of copyright law.
1). Microsoft has such a strong position in the market that people have an irrational fear of using anything else. If I wrote a word processor that was demonstrably better than MS Word I'd have trouble GIVING it away, let alone selling it.
2). Software is easy to copy. Even if I write really good software and sell it cheap, not everyone will buy a legal copy.
3). Software can easily be written by one person working on his kitchen table. Selling software requires a LOT more resources, including employees who will insist on being paid whether the company makes any money or not.
4). If I sell software I am morally obligated to stand behind it to some extent, to provide support. Giving away software with source means that anyone who gets my software can solve his own problems. I can refuse to be liable for what my software does with a clean conscience.
5). If I give my software away with source code I don't get any money for the software. However, I don't lose money either. (http://sourceforge.net provides a method of distributing my software to anyone that wants it without cost to me.) Maybe I can gain a reputation for writing good code or designing good systems that may help me find work. There is plenty of work writing custom software and that is a surer way of making money than running a software business.
6). Since everyone who uses my program gets my source code, some of them may be motivated to find and fix bugs, add features to my project, etc., all at no cost to me. This has in fact already happened on my own project.
7). I don't have to give anyone guilt trips about paying for my work and not sharing it with their friends. I WANT them to share with their friends! The more the better!
8). Finally, I can benefit by the code and programs of others. If someone else's program has a feature that would also be useful in my own, I can use his code as is or try to improve on it.
Contrast this with Microsoft's business model, which is to convince people to buy basically the same products over and over again every few years, when the products they bought the last time still work and will NEVER wear out? When the new products require a new computer to run? It is amazing they are still in business!
...would otherwise *not* do Open Source.
1. There is an OSS solution that needs just a little bit more push to fulfill my needs. The biggest example of this for me was Gifsicle. All it needed was a Win32 build and a couple of minor bugfixes. The cost of supplying those things was far exceeded by the cost of re-writing it from scratch, and there were no cheap alternatives that did the same thing.
2. To demonstrate programming skill. Obviously the only way to show people your skill is to show them your code. As long as you are going to show them the code, you might as well make sure that you can still use it in the future (not under an NDA) and most OSS licenses fulfill that need which brings us to...
3. To avoid being tied down to one employer. The more you work with OSS, and the more popular it is, the less you are tied to your employer. If all your work is in-house or NDA, the employer has a tremendous power over you. Get layed off and you may have to develop a whole new set of skills. In this regard, OSS acts as a kind of informal labor union with all the associated inefficencies. Developers who really want to break free are better off figuring out a way to own their IP, but many see that as too difficult so OSS gives them entry into a kind of "guild" that can convey certain advantages as described above.
4. The classic reason, which is that you enjoy it. Personally, I find that this only holds true when there is a small ammount of effort, perhaps a single night's work. I have a hard time imagining this drive becoming so powerful that I would be moved to make signficant contributions to something as arcane as kernel code without financial compensation.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
Because:
...
1) I wanted to repay Richard Stallman and Linus Torvalds and
all the other Free Software writers for giving me a cheap/free
Unix with all the tools and ESPECIALLY THE COMPILER.
2) I write numerical software(Finite Element Analysis) and
am dependent on the fact that numerical techniques such as
Gauss Quadrature, LU decomposition, the Method of Conjugate Gradients,
Lanczos Method of tridiagonalizing a matrix, and the QR algorithm,
are all open and free for me to use. Scientific computing would
be dead if these techniques were closed off due to patents or
hidden in the proprietary code of some company.
3) Companies ask programmers and engineers to sign non-disclosure
agreements(NDA). With Free Software I can:
a) Create a body of work before becoming employed which
I can take anywhere that will override the unfair parts of a
broadly drawn NDA. Releasing it as Free Software makes
it public.
b) Other programmers can do the same. If they add to the work
can say they are legally bound( at least by the GPL) to
contribute back to the code and therefore, will be able to
have these contributions go with them to their next job.
4) Keeping things secret and closed is self-defeating, especially in
science. I say this from personal experience of working in
academia. Anyone who does science knows that even under the best
circumstances where one has access to every equation, journal,
expert in the field, etc. it is still a very difficult process. Let's
not make it worse by hiding source.
And on and on
San Le www.slffea.com
I started writing Exult
Some of the code I write is closed source (cries of 'heresy' can be heard). I do it because my employer pays me to do it.
Some of the code I write is open source. I do it because I want to. I don't need to get paid for it, since I get paid for my other software. I'm just doing it mostly for fun, and a little for the educational experience and practice. Absent the need for payment, I made it freeware. The benefits accrued to both the user and myself by making it open source freeware far outweighs the benefits from closed source freeware.
Make no mistake, I consider my open source software to be freeware. That's because that is what it is: free beer. I do not charge for downloading it. And I do not forbid anyone from distributing it free of charge once they obtain it.
I'm not making my stuff open source out of some sense of duty, or because I think I am supposed to, or because it is politically correct, or becauseI think it will save the world from destruction, or that I will go to hell if I don't. I do it because I want to. It's an ego boost, an itch scratcher, and a thank you note, all rolled up into one.
A Government Is a Body of People, Usually Notably Ungoverned
how come nobody ever asks why people watch tv for five hours a day when nobody's paying them too?
Mod this up. It's a viewpoint that the Congressman might understand. Five or ten hours a day of coding is more challenging and intellectually rewarding than five hours of watching TV.
Glenn R-P (libpng)
Suppose I wrote a killer app. How would I sell it? I'm just one guy with a full-time job and no selling skills. Maybe I could convince 5 of my friends to plunk down the green stuff. Then I'd have 5 guys hounding me, asking why it didn't work right, wanting me to add this, that, or the other kewl new feature. If I include the source code, I can tell them to make their own damn fixes/enhancements. And if they like it and give it to a bunch of their buddies, it won't line my pockets, but I can say "look at all those people using MY program!"
Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
2. Because there is a good deal of satisfaction in knowing that your work is being used by people.
3. General ego gratification of the "I'm smart enough to do this" form. This is the main reason there is very high quality in Open Source software, the other reasons I state do not give any incentive for high quality.
I started writing Exult about three years ago, mainly just to get a little experience writing with XLib. At the time, my job involved writing a couple HDL compilers for my employer (a large Dutch company). Around the time the compilers were being beta-tested, my group was sold to another company, and my project shelved.
Then I worked for a startup, also developing compilers. I left after about a year, just before they ran out of money (whew!). What I wrote for them will probably never see the light of a CRT again.
Meanwhile, Exult has grown to over 100K lines-of-code, has about a half-dozen active developers, a busy user forum, and gets 8-10K downloads when we release each alpha. We've also received at-a-boy emails from several of Ultima7's developers, and even one from R.G himself (unless someone was spoofing:-)).
I still need to keep coding for money, but the GPL'd code has certainly brought me a lot more satisfaction.
We "do" open source because it's a better development model - the end product is stronger (most of the time). Say what you will about infighting and the group politics that can be
It is easy to say this, and there are great examples of open source products. But there are also just as many--maybe more--examples of top notch closed source products.
there's a reason more and more "mission-critical" applications run on open source platforms and technologies.
Of course this isn't true. Most mission critical stuff is for embedded systems, and most of it is not done with Linux or other open source systems.
Moral: Don't let your personal view of the way you'd like things to be color your perception of reality.
All human behavior can be explained by rational self interest. Accordingly, humans invented and named the concept of "trade", which occurs when parties exchange things of value in an attempt to each better themselves. Trade is good.
Some trade is catalyzed by money, but anyone who has ever traded one baseball card for another, or scratched somebody else's back in return for being scratched knows that some trade happens easily without money. This does not mean that money is a bad thing or that all trade should happen without money. That would just about silly as trying to suggest that the only thing of value is money. You can rely on free people choosing the mechanism of trade that benefits them the most in any given situation.
Software is a thing of value, and is naturally an object of trade. Software has obvious utility value, but it also has value as an intellectual property value. This value is the value of the ideas expressed in the source code. Ideas are highly prized and run the gamut from the simple to the inspired work of genius. People generally want to trade things they can generate faster than others for things they can't, because that way they maximize the flow of value, and this applies to the trade of ideas as well.
Open source software is a clever form of trade that maximizes value flow by using copyright to secure return on investment as access to ideas that build upon the ideas disseminated. By releasing software under an open source licence, an author trades the ability to use and extend the software in return for a secure interest in doing the same to the resulting combination of intellectual property. Companies often pay programmers just to program code that won't be sold, so why is it surprising at all that programmers have discovered barter in code amonst themselves.
Any entrepenuer knows that trade is often maximized by accepting a little uncertainty and risk. Like any form of entrepenuerial activity, this involves an investment up front in time and effort that will be rewarded later according to its value to others. In order to maximize the return on investement, the open source author wants as many people as possible to obtain and use the software, in the hopes that by winning mind share, more people will contribute their valuable ideas back and thereby complete the trade. Interestly, when this form of trade is completed, each side automatically reinvests. Because ideas don't have physical existence, this is a cake that you can have and eat. One does not "consume" ideas.
What could be a better outcome from Congress exercising its power "to promote the progress of science and arts" than highly catalyzed iterative, derivitive growth of intellectual property accessable to all?
I expect my views are somewhat different than the usual on the subject, as I'm not a rabid open or closed source advocate. I use what works.
Some software is too fundamental, or too generally useful, to be controlled by an entity that is interested in making money for itself and its stockholders. A company may decide to shift into a different market, letting some of its products languish (Arity did this; they developed a popular Prolog system, but then stopped development of it to concentrate on applications). Or a company may decide to change its marketing strategy, leaving previous users out in the cold (Franz, Inc., sold a Common Lisp system for around $500 a few years ago; that system is now $2500+). Or a company may simply go out of business. There were hundreds of developers left out in the cold when Apple dropped its Newton. Imagine if Python were closed source and Python, Inc., after losing lots of money in the dot-com crash, shut its doors in a similar fashion.
File compression software, operating systems, web servers, scripting languages...those are all too basic to be tossed about in a sea of marketing and corporatism. But other software is not so fundamental: games, packages relied on by niches (e.g. graphic artists), and so on. There's less reason to argue that these should be open source. And while Perl, Python, and TCL seem to be out-teching commercial offerings, it's not nearly so clear when it comes to CorelDraw and Photoshop vs. The Gimp for example.
All human beings, and probably most semi-intelligent life-forms, have one underlying goal to everything they do: to make stuff happen. Humans want to poke and prod at the world, and see things change as a result of our input. When we manage to make a large change to our environment, we feel satisfaction and gratification. When we are trying to make a chance but nothing much seems to be happening, that's when we get frustrated and unhappy.
Some people want to make changes by having power over others. Some like to blow things up. Some like to build new things. Some like to affect other people mentally or emotionally, for good or for bad. But we all want to see our input to the world produce a noticable change.
Once upon a time, individual software developers really did make a difference in the technology we use. Nowadays, that is rarely true anymore. We're just cogs in the machine, and if we write good code or bad, it all evens out in the end. That's frustrating, because we feel like what we do doesn't matter.
That's why Open Source is the ultimate in coder gratification. Individual developers can introduce code that really does make a splash, without needing all the infrastructure of a corporation. We see the "extreme" cases where one or two coders, working from home, has managed to topple a big part of corporate America. (Linux, DeCSS, Mandrake's distro, Slashdot, the list goes on...) We see these and think that we'd rather be doing something like that, that really makes a difference and affects our world, than be a corporate cog in the machine where at best we can hope to make a lot of money, but never to have a huge effect on the world around us.
I'm sure most open-sourcer's do "it" for similar reasons.
Now that I think about it the professional sports leagues don't feel real threatened by the weekend warrior even though they probably spend more money playing softball (with all the beer and all) than they spend at baseball games. I wonder why the big software corps are so afraid of us?
- Colnago
I'm afraid I fail to see how you mean this.
;-)
How would one study the workings of an OS without the source? How would one have peer-review for your cool coding tricks? How would one review posible buffer-overflows etc in closed source?
If you would mean that all the above reasons go for free-as-in-beer (so open source AND free software) than your comment is correct. However, even though the free-software and open-source movements have a lot in commen, they are not the same
Open source is not unlike a huge pot luck dinner. We all bring something and we get back a complete meal rather than a single dish. The biggest difference is that software is easily copied. So we each brought a single serving and got back meals for the entire year.
The net will not be what we demand, but what we make it. Build it well.
I do it because the equivalent commercial products suck. They are overpriced ( to the tunes of thousands of dollars ) and not as feature rich. Working for an ISP providing dialup services, having a functional Radius server that is scalable, reliable, and most of all, easily modified is paramount to the success of our business.
So, I get paid by my employer to write code that ends up under the GPL in the server. The entire world gets a killer server for a great price. And my employer gets the benefit of a larger array of "virtual programmers" who are constantly reviewing and improving the code. It's a shared development cost more than anything else.
Plus, I like writing code, and I've gotten to interact with people from all over the world as they use the server.
My 2 cents anyway. Others have probably said it better than I, but this is why *I* write code and give it away. :)
---
Segmentation Fault ( core dumped )
I'm going to answer a slightly different question, why do I do it.
There are a few distinct reasons I do it:
That said, there are some reasons I don't do Open Source:
So, when it comes to writing software, which (to me) includes designing as well as implementing it, naturally I want to add to the body of trustware that's out there, so other people will respect my software too. (And I recently read a little note on the G95 website that suggests, hey, maybe some of them do, despite all the faults in g77.)
2) It's "My" Code...
Examples of what developing GPL'ed software allows me to do, that developing proprietary software does not allow me to do:
There are plenty of other reasons, already given elsewhere, like "making the world a better place" and stuff, but these are items that often don't get mentioned, or valued, in such discussions, and which "young" programmers, such as those just starting out in a proprietary-software company, might not have thought through. (E.g. all that code they wrote the previous few years becomes nearly useless to them the moment they get laid off or quit -- they got paid $$ to write it, but that's pretty much where the relationship ends.)
When it comes to having people know about the software I've written throughout the years, no question that g77 far outranks anything else I've done, since comparatively few people ever, e.g., used the BATCH subsystem under PRIMOS, read the Pr1me "Advanced Programmer's Guide" series, etc.
And when it comes to my occasionally wanting to hack on some software with which I'm familiar, the only software I worked on to which I presently have such free access is g77. It represents probably only 20% of my career output to date, that figure depending somewhat on whether technical docs are included, but it's the only large free software (and documentation) I've written.
All that other software and docs? Swallowed up in failed and/or bought-out-and-then-shut-down companies, and, since I didn't have the rights I have with GPL'ed software, it's basically all gone, regardless of its usefulness.
Free software, on the other hand, is likely to disappear from the face of the earth only if it is truly found to be useless. Even marginally useful free software will likely find a haven in various archives around the world. Authors of really useful free software needn't worry about backups -- as Linus once said, just put your latest hacks up on your website and let the rest of the world mirror it!
Practice random senselessness and act kind of beautiful.
Check out Steve Weber's work on the topic. WP 140, "The Political Economy of Open Source," articulates some interesting stuff.
Ceterum censeo Microsoftam esse delendam.
Because helping to develop open source software makes good business sense for them.
Why does it make good business sense? One reason is that they are giving something away so that they can leverage that free product to sell something else. These companies make money off of selling products and services related to open source products. In order to maximize the size of their market, it makes sense for them to help with Linux development, for instance. The better Linux is, the more people will use it. More people using it means more people will buy their products and services.
There are nay-sayers who say that this isn't a sustainable business model, but other very successful companies do this all the time. They give away something so that they can sell more of something else. Ask yourself why Microsoft gives away its browser for free. For Microsoft it is better not to charge for their browser so they will increase their browser market share. They are trading current dollars for future profits from the sale of browser-related software and services. AOL does the same thing with their on-line service. They give away tons of those CD with their software because they know that they can make it back from selling online access and content.
The other way in which open source development makes business sense is in the control. When IBM wants a particular piece of software or hardware to work with Linux, they simply add the necessary code to the operating system and contribute it to the community. The new code gets propogated into all new updates of Linux, and now more people are able to use their for-profit product. On the other hand, because IBM doesn't have control over Windows, they have to beg and plead for them to add a feature to Windows they they may want. In short, they have no control over the code.
Finally, contributing to Open Source is great from a marketting standpoint. All of the Joe Random Hackers out there appreciate the fact that this big company is pitching in to help. This gives them a "warm and fuzzy" feeling about the company. On the other hand, companies that attack the open source movement (Microsoft) are scorned by the Joe Random Hackers of the world.
This is one reason why Ben and Jerry's has been so successful. When you by a pint of Cherry Garcia, you aren't just buying a tasty snack, you are buying into a whole philosophy of business. People are willing to spend a couple extra bucks for this "warm and fuzzy" feeling.
Anyway, it's nice to say that people contribute to the open source movement because it feels right, but that alone doesn't explain why.
------
www.moneybythenumbers.com
I think that many of the people who work on free software do it because they or their employers simply see that approach as the most effective way to get the quality software they need. They have problems they need to solve, and this has nothing to do with the stereotypical "volunteer" open source developer scratching a personal itch. A lot of Linux-related work comes out of NASA and other large organizations which need software to get their work done, can't buy what they need off the shelf, and have no motivation for keeping their code secret. Under those circumstances, why not make the source open?
The AT&T/UNIX example is a classic. Had AT&T been allowed to market UNIX as a product, we'd probably all be using some sort of crappy VMS descendant. ;)
After 25 years or so of the closed-source experiment, people are beginning to realize that the closed-source approach has its limitations; so, the alternatives are getting attention. But we shouldn't be surprised that people do this, any more than we're surprised that scientists and economists publish in journals.
I write free software in order to write code that will be used in the real world. Most of the code that I write professionally will never see the light of day. The project will change directions at an executive's whim, or the whole project will be canceled, or the company will go bankrupt.
I suspect that very little of the software written for hire is every put into production.
Second, the stuff I write commercially is always twisted to some extent by the organizational/marketing agenda of the employer/customer. Free Software is my chance to write code that's clean and logical.
Third, software that I write for hire is never really finished. There is no money in budgets for polishing code. Once it works I'm on to something else, although the code is full of commented-out bits and unused variables and might need a complete rewrite.
Summary: programming for a living causes an ever-increasing accumulation of bitterness. Writing Free Software counteracts that bitterness with the sweetness of a clean, logical, complete project that might be used by many.
is that not everyone does everything to make money.
Some people work on cars for fun. Some paint. Some do woodwork. Some people teach kung-fu to kids. Some do community volunteer work.
The motive can be entertainment, or feeling good about yourslef, making a difference, or whatever.
Too often, the media views 'programming' as 'work', like we are all 'working' for free. We aren't... it's a hobby, too.
I second this. Thank you for having the courage to be honest, even if some people do think it's "corny".
... and it's frustrating. So much effort goes into coding, it just feels like it should be doing a lot of people a lot of good. So some programmers choose to actually make that happen!
I think this is not a rare motivation at all. As programmers, most of our work goes into little systems that only helps some corner of some company for a limited time
The problem is that not enough people band together, start a (semi) formal development programme with solid requirements, and then code/test it to completion ...
... even if they're really bad ideas! It's the opportunity that matters.
Agreed -- absolutely. Programmers, in spite of being so social online, are still too reclusive about their work.
I'm sure Source Forge is littered with thousands of "Version 0.001" releases that will never make it to the "actually useful" stage.
But this is necessary and inevitable -- it's important that people have a shot at developing their own ideas, even if it's just a little bit
One big difference between the open source and commercial worlds is that with OSS, even if you're working on somebody else's project, you could be working on your own. It's a world of pure choice, and that's a beautiful thing.
It's evolution -- in a large pool of ideas, most don't make it far. But the large pool is very important, even if most of it dies off quickly.
Microsoft doesn't care about creating usable interfaces and won't let me do a damn thing about it. I could go up to Bill Gates and say "Hey, Bill, your software is unusable. It's contains lots of designs that no self-respecting HCI person would ever recommend. I can rework your programs so that people can learn them faster and use them more efficiently". And do you know what Bill would tell me "That's nice. The exit's on your left". This also goes for just about every software company on the planet. When I have the code for a GUI environment, I have the power to make interface design decisions that need to be made. I don't have to deal with programmers who don't give a damn or software executives who don't have a clue.
Somebody mod up the post above, please
Life's a bitch but somebody's gotta do it.
Err, forget that, somebody mod both these down please ;-)
Life's a bitch but somebody's gotta do it.
As I was thinking about what to write I realized the question of why I write software and give it away is also the reason. Hopefully this will make more sense by the time I finish, if not please email me for any clarifications or questions. :)
;)
I would also like to have a disclaimer that I work for a company that has commercial, closed source, software and I am the main developer for that program. Although my preference is Open Source, my employer has final say in how the software I write on their time is used. I like working for the company, so we have an agreement about releasing some code openly and some closed.
My first exposure to "Open Source" software (c: it was not called that at the time) was in the Marine Corps, I was stationed on El Toro in Santa Ana, CA and tasked with being the "firewall administrator." The first thing I did was look for the fire exists and extinguisher.
Because I was given this responsibility, and the Military would not train me on maintaining the system (c: nobody else there knew it and we did not have the money for classes), I was forced to start poking around on the system. The system was using BSDI and Gauntlet as the firewall software.
When I didn't know how something worked, or when I had the question "why" I could always start looking. I took a long time before I ever managed to fix my own mistakes, but I learned how to troubleshoot and tackle problems procedurally. This helped tremendously when I was in the field, when other people would get overwhelmed by inspections, formations, the route for the march, etc. I just broke it down and started to pick it apart like the firewall.
Had the Military sent me to any formal training I don't think I would have had that, because I would have stopped learning when I knew how to perform the basic functions. Or I would have waited for someone to send me to a class where I would be told most of what I needed to do and provided with the information. There would also be no opportunity to become enthralled in why this box did what it did, which would not have translated into learning how to handle situations where I am not given every piece of information or a long time to prepare.
When I was transferred from MCAS El Toro to MCAS Miramar in 1998 my SNCOIC was sent to the secondary 40xx MOS school. In that class they used a Portuguese version of Linux to setup DNS servers. There were two main reasons that they used Linux, the cost and the availability.
Keep in mind that not every department in the Military has a ton of money, some of the 3MAW units were still using 486 computers on the desktop when I was on MCAS Miramar in 1999. They were able to do this because the servers were running Banyan VINES, which hosts the email and file storage at the server rather than the local computer. When we were forced, even after I put up a BIG fight, to migrate to Windows NT as part of the BRAC this changed; virtually all of the networking and desktop systems, which had not been recently purchased, had to be torn out.
The cost justification for using Linux to teach was that it wouldn't have to be authorized for the budget and could be setup quickly because it was freely available.
I don't know if you are familiar with the way the budget works, but if you don't spend the money you are allocated for the year you loose it; and your budget for the next year is probably going to be lower. There's no incentive to NOT spend money like it would never end.
But not everybody had that money, so using Linux provided the lowest common denominator that everyone could use.
After having been on MCAS Miramar I was one of the only people with Unix backgrounds, everyone else learned NT because of the BRAC migration. When talking to one of the other "old timers" on another base, I became aware of the number of programmers the DoD has. Yet the DoD does not write much of its own software for general use, they use COTS software instead.
The money the DoD spends on buying software could easily finance the programmers writing that functionality into any needed software. This software could easily be used in other Government departments and would not require the purchase of an entirely new application to get any needed functionality or features.
I realize my thought process is has run away, so to cut this short and summarize my reason for writing code and giving it away is because I like to ask "why".
If you are interested, some specific examples of why include:
1. I am a Marine and I come from a _very_ military family; of my 9 siblings 6 have already served in addition to my Father and Uncles. I never want to hear about a Marine, Sailor or Soldier killed in combat because their Pocket PC crashed. Nothing will ever be completely fail safe, but Open Source allows for a bigger review process with a better chance of finding problems.
Consider encryption, why doesn't the Government keep their encryption schemes a secret if they are supposed to be used to secure the most sensitive data they have? Why not throw all the Russians in jail under the DMCA if they try to break the encryption? We could have ended the Cold War a lot quicker that way.
2. The DoD has a lot of programmers, what would it look like from a cost savings perspective if those programmers contributed to Open Source? How much money would the DoD save in making Linux Common Criteria Certified and deployed internally. Use SE Linux, created by the
NSA, on the servers and critical desktops, SAMBA for file and print sharing, etc. The put the money towards beans, band-aids and bullets.
This is one of my motivations, because I have "been there, done that" in the field with old, outdated, hand-me-down equipment falling appart. The justification was always that we did not have the money, but if you went into our comptuer room we have rows of Compaq Proliant 6500 computers fully loaded running Windows NT. With Linux we would not need machines that big, or that expensive. We would also save money on the licensing and not have to upgrade so often.
3. If I write software I usually learn something in the process, often not just about the program but about myself as well. But if I have other people contributing to my code I can learn from them as well, if the code is closed they are less likely to contribute their knowledge and experience. This allowed me to learn things much faster and tap a much broader knowledge base when I get into a Portuguese bind (c: BIND = = DNS).
4. So I can ask why. Why does this work? Why _doesn't_ this work? Why can't I do what I want to do?
By asking "why" I poke and prod until I either have more questions or until I get sued and put in jail.
Unlike many people I do not tend to stop when I am faced with what at first appears to be an unanswerable question; I pick it appart or ask for the assistance of others to find the answer; which leads to more questions.
Because it is not the answer that is important, it is where you are left after having had the inquiry.
What good is it to talk to myself?
That is what it is like to program with closed source software, nobody but your co-workers can see what you have created. Nobody can witness that clever algorithm you created to solve a really thorny problem; all they see is the result of the program in action.
As an example, earlier today I had a co-worker who took a 15 line script for error checking and re-wrote it in 2 lines of regular expressions. But that is not the interesting part for me, when he sent me the new code he pointed out that I "always make things difficult" when they do not have to be.
My program is an expression of myself. Who I am being when I write software is the same, generally speaking, as when I am with family and friends. When he pointed out to me that I always make things more difficult, one of the first things that came to mind was that a very dear friend had said the same thing to me the night before.
When someone comments on my code or my coding stle, they are commenting on who I was being when I wrote that code. It is an extension of how I choose to express myself under that particular situation.
By opening the source I can have the inquiry with the world with amazing results. What happens when you are open to the possibility of allowing others to contribute to not only your program but yourself in the process.
Semper Fi,
Wayne Pierce
Former SGT USMC
PS: I am MUCH better with firewalls now.
----
wpierce at athenasecurity dot com
VP of Technology
Athena Security
Information Security is a process, not a product.
This is a bit similar to other answers, but one of the reasons I'm thinking of starting a GPL project (and probably contributing to a few existing projects) is that as a corporate programmer, I'm tired of writing the same frameworks again and again and again!
I also feel a strong desire to contribute to the greater good for both society and other programmers, but part of it is also the desire to be able to work for any company and be able to start with a nice well-understood framework and not have to rebuild.
That same inherent dislike for duplication of effort (read laziness!) that leads you to build nice reusable modules you can call on later in other code, also drives one to produce code you know by license can be called on at other companies. Work done on that system can be contributed back to the project. (I do contribute changes to GPL code I alter for work back to the project).
So in essence along with an altruistic result and goal is something of a slightly selfish nature, in that it helps make my life easier - so much the better if it makes other peoples lives easier as well.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
My second reason is that I find the public development process superior. Having two persons studying your code is better than having just one. Having four is twice as good. And so on. There is always some person somewhere with expert knowledge on an esoteric subject. There are people with specific skills, and there are people with specific interests, such as documenting, testing, logistics or herding.
I find that mere information transparency is a good reason by itself -- and it's a philosophy that pervades much of the technological foundation of the net. I can test a POP3 server with a telnet client. I can tunnel XML-RPC through Apache. I can feed my favourite news server into a mailing list with GNU Mailman. I can harvest my favourite web sites onto my hard drive and postprocess it. And so on. Openness tends to breed openness.
There are other personal incentives for developing such software -- receiving the admiration of one's peers, developing one's technical skills, interacting with interesting people, finding new technical challenges, the structural aesthetics of a well-organized project, etc. Many of these incentives are present in "closed" projects (by which I mean any project where the source is publicly divulged). However, if recognition and ego expansion is one's goal, closed projects won't offer much relief.
Nothing to do with altruism. I'm lazy, I like to get something for nothing and with Open Source, I'm onto a good thing.
Lets say my boss wants me to solve some problem using software.
First of all, I don't go out and re-implement the wheel. Only an idiot would do that. I look round for something that someone else has done that solves most of what I need.
Then I take all of the hard work that they've done and I do any code fixes or customisations that I need for my own purposes, then I take credit for it all with my boss. I also give my updates back to the original author since I've already made the changes and I might as well. If he likes them, he'll include them. Hell, if he includes them, it means we don't have to make the changes again next time - less work for me.
If when I look round, there's nothing which does what I need then it means that I just have to write the code - that's work - Bummer.
However, I know that if I put my code up on a web site and publicise it to other developers, they might also need to do what I need to, they can download the code and use it, after all, I've written it already, no skin off my nose.
The cool thing is, they debug it for me! Is that cool or what? I get other people to do my work for me. All I have to do is fix the bugs or apply their patches. If it becomes *really* popular, I can sit back and take all the glory from the management for doing nothing!
Deleted
Having an outsider find and report a bug is usually a much happier situation than having in-house users encounter the same bug while conducting our business.
For more details, see my essay: Free Software: Solving the Buy/Build Dilemma.
Please re-read the original posting. "Cool coding tricks" were never mentioned. Realistically, very, very, _very_ few people study the source code. You get more recognition for your achievements by what people think of the _running program_. And in that case the source is irrelevant.
I try to keep others from experiencing the same computer pain I've gone through. This means I produce more phone calls and less code, but I can live with it.
-Paul Komarek