Forgot your password?
typodupeerror
United States

Open Source - Why Do We Do It? 378

Posted by Cliff
from the open-source-meets-capitol-hill dept.
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."
This discussion has been archived. No new comments can be posted.

Open Source - Why Do We Do It?

Comments Filter:
  • by LenE (29922) on Thursday September 06, 2001 @10:09AM (#2259195) Homepage
    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
  • by Simon Tatham (66941) on Thursday September 06, 2001 @10:10AM (#2259198) Homepage

    ... 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 :-)

    • A thought that this comment gave me was "why do people make web pages?" Personal ones, that is. I've seen amateur journalism, fan sites, etc., that took hours of learning and labor. And people put them out there for everyone to look at and, hopefully, benefit from.

      Some elaboration:
      People make web pages to express themselves. To spread information they think is important. To let others know who they are. To conveniently provide something to people they know (family photos, for example.) Because they want to learn how to use an exciting new technology.

      I think all these reasons apply equally well to open source software. Of course, there are other reasons too, but I think perhaps the analogy might make "average people" think about it from a new perspective.

      Bob
    • "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."

      There have been many, *many* times where the solution is more viable through recreation than using existing code. One of the problem of "not reinventing the wheel" is using the same existing technology that, often, no one wants to touch. It may be a new wheel on the outside, but the spokes are the same on the inside, and they eventually fall apart.

      Further, what if your code falls into hands you don't want it to. Surely, you don't want to give your code away to *everyone*. Terrorists? Government agents? The same tools which can be used to create "freedom" (as some people mistakenly use the word) can also cause oppression.

      My take on it: release code if you like, but it's not "the best way". There is no "best way". Programmers who think the open source "revolution" is going to take over Microsoft's closed source scheme in the long run are in for some major disappointments. The two can coexist, but I doubt one will override.

  • Demonstration... (Score:3, Interesting)

    by mirko (198274) on Thursday September 06, 2001 @10:10AM (#2259199) Journal
    I actually several potential answers to your questions. These are:
    • To demonstrate one's expertise in a domain (many Open Source Project Leaders found jobs that made them famous)
    • Because they do it just for the fun of it (I am currently reading Linus' "Just For Fun" biography). They consider the fun of exrcising their brains and would just give away what they did so that it has a chance to benefit from one another's point of view...
    • Because everybody does it (do't blame me on this but I see people who don't even know why they do it but just do it because they don't care. There's no real sign of altruism here.)
  • One word... (Score:4, Insightful)

    by Kombat (93720) <kombat@kombat.org> on Thursday September 06, 2001 @10:10AM (#2259200) Homepage
    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."
  • Sir Edmund Hillary (Score:4, Interesting)

    by bricriu (184334) on Thursday September 06, 2001 @10:10AM (#2259202) Homepage
    "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.
    • by dgroskind (198819)

      The author of the quote "Because it's there" was George Mallory [xnet.com], not Sir Edmund. Mallory died trying to climb Mt. Everest in 1924.

      A complete statement [willerup.com] of Mallory's view suggests that it does not really apply to writing software: "The first question which you will ask and which I must try to answer is this, 'What is the use of climbing Mount Everest ?' and my answer must at once be, 'It is no use'.

      Software is primarily and above all, useful.

      However, Mallory also says: What we get from this adventure is just sheer joy. And joy is, after all, the end of life.

      Sometimes I think this view applies to writing software and sometimes I don't.

  • 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.
    • by radja (58949) on Thursday September 06, 2001 @10:24AM (#2259390) Homepage
      And we do it becaus it means less time spent reinventing the wheel. over and over and over again, Open Source projects have allowed me as a developer to roll out stable and working applications for the company I work for. Applications with few bugs, most of which can be fixed easily and quickly either by my company or by the maintainers, resulting in higher quality software for less time spent. We want the best we can get, and the only way to know is to look under the hood and tweak the engine to maximum performance, minimal sound, or best fuel-consumption. Open Source allows us to do just that.

      I just have to wonder... is the same question asked of Microsoft.. why do you close your source?

      //rdj

      • I just have to wonder... is the same question asked of Microsoft.. why do you close your source?


        That's an easy one..to make money. How much money would Microsoft make as an Open Source-based company? Almost none. Sure, its nice that Red Hat is more or less showing a profit these days, buts its tiny compared to the kind of bank Microsoft is pulling down quarter to quarter.

        I'm not bashing Microsoft here...I like money too. I use it to buy clothes and books and food and shelter and more computer equipment and such.

        • Its more than just money. Trade Secrets (e.g., the code itself in M$'s case) represent shareholder value. The are the assets (even if on the books M$ doesn't actually value them as being worth anything) by which Wall Street judges them. Open-Source software isn't considered a valuable commodity when Wall Street looks at it. To Wall Street, what you give away isn't worth anything unless by giving it away you get rid of any alternatives; e.g., only give it away if you get a monopoly out of it, because then the monopoly is of value (though the software still isn't).
        • How much money would Microsoft make as an Open Source-based company? Almost none.

          Huh? Nobody's asking them to GPL their crap. Piracy wouldn't get more widespread- it would still only take one disgruntled employee to call in the MS auditors. If it were Open Source, it would fucking work! Security patches would be out at least as fast as patches for Linux. Outlook wouldn't spread viruses. That would all be fixed, and they would get these improvements for free.

          I'm sorry, but going Open would be the smartest thing that MS could do. They wouldn't lose any more money than they already are, and we would lose our biggest arguments against them. They could license it so that outside coders would lose rights to their patches to MS, and soon they would be selling an OS and an office suite that were actually worth the money.

      • over and over and over again, Open Source projects have allowed me as a developer to roll out stable and working applications for the company I work for

        Please forgive me, but I just have to ask: are these open-source-based applications of which you speak themselves open-source? If so, where are they available?

    • Individuals who will admittedly never play professional sports continue to exercise, join teams, and even pay to play to do something they enjoy. For them it is a stress release, a challenge to see if they can improve, a chance to identify themselves with something other than work or family, and a way to build friendships. They use sports as an opportunity to build their network of contacts and a place to build their reputation.


      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

  • by bluGill (862) on Thursday September 06, 2001 @10:10AM (#2259208)

    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.

  • by Luke (7869)
    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:

    FUD /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.

    (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

  • Lots of reasons (Score:3, Insightful)

    by dant (25668) on Thursday September 06, 2001 @10:12AM (#2259224) Journal
    Altruism is certainly part of it, I think, but there are many reasons:
    • Fun - A lot of us just plain like to tinker with our computers. Having the finished product is often less important than the act of writing it, so you may as well give it away when you're done.
    • Satisfaction - It's a bit of an ego-stroke, having something you've written be used by lots of people all over the world. That's how you know you did a good job.
    • Politics/Advocacy - Geeks can get pretty passionate about The Way Things Should Work. As programmers, we're uniquely able to actually make things work the way we want (at least on a practical level) sometimes. We'd be fools to pass up that chance.
    • Altruism - This is the most obvious one. Most people want to feel that in some small way, they've made a contribution to humanity. Writing a nifty little tool and giving to the world is hardly curing cancer or devoting your life to starving people in Calcutta, but it's something we can do that contributes (in however small a way) to the progress of technology as a whole. How could you not?
    • Right! Programming is fun, and working in the software industry really bites the big one these days, so open-source is the way to go. You meet people, nobody's telling you how to code, there's a lot less bullshit.

      Egoboo is nice but the corporate BS is the real reason.

      Me, I'd rather work in another industry. Programming is fun: if it becomes a job, then it really, really sucks. My job is something ... other.

  • by dutky (20510) on Thursday September 06, 2001 @10:12AM (#2259225) Homepage Journal
    My top five reasons are:
    1. to scratch a personal itch (you need the software for something you do)
    2. contractual obligations (you were funded by public monies, you are under court order, etc.)
    3. as a value added item (drivers, utilities, etc. related to a primary source of funding)
    4. for instructional purposes (programming tutorials, prototypes, etc.)
    5. for the fun of it (my favorite reason)
  • Returned value (Score:4, Informative)

    by Analog (564) on Thursday September 06, 2001 @10:13AM (#2259228)
    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.
  • Why I do it... (Score:3, Interesting)

    by Ruis (21357) on Thursday September 06, 2001 @10:13AM (#2259230)
    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.
  • Some Reasons (Score:3, Offtopic)

    by Nater (15229) on Thursday September 06, 2001 @10:13AM (#2259231) Homepage
    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.
  • Generally, I build Open Source software to address one of three concerns:
    • To scratch an itch, so to speak. In other words, there is no reasonable solution to a problem I want solved, so I solve it myself. An example of this is would be my mSQL-JDBC driver. At the time, there simply was no way to access a database using JDBC.
    • To empower previously disenfranchised people. For example, I wrote my mud code because at the time (1991), building new muds was very much an elitist endeavor. I wanted to remove the technical irrelevancies and empower people to be creative.
    • To reduce the cost of a product group that is outrageously overpriced. A good current example of that is digital asset management solutions. IBM and others charge fortunes for their digital asset management products. I wrote xS to compete with these guys.
  • by doctor_oktagon (157579) on Thursday September 06, 2001 @10:14AM (#2259238)
    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 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 ... I'm sure Source Forge is littered with thousands of "Version 0.001" releases that will never make it to the actually useful stage.
  • by onion2k (203094) on Thursday September 06, 2001 @10:15AM (#2259244) Homepage
    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..
  • by smallpaul (65919) <(paul) (at) (prescod.net)> on Thursday September 06, 2001 @10:16AM (#2259257)
    ESR's writings on this topic are recommended reading for open source hackers no matter how you feel about ESR. Homesteading the Noosphere [openresources.com]

    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.



  • 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?

  • by jorbettis (113413) on Thursday September 06, 2001 @10:19AM (#2259307) Homepage

    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.

  • by Ami Ganguli (921) on Thursday September 06, 2001 @10:19AM (#2259310) Homepage

    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.

  • 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!
    • by Tony Shepps (333) on Thursday September 06, 2001 @03:55PM (#2260207) Homepage
      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.

  • 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.

  • Fun, simply fun (Score:2, Insightful)

    by DarkDust (239124)
    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)
  • maslow's hierarchy (Score:2, Insightful)

    by johnrpenner (40054)
    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 [earthlink.net]

  • by stonewolf (234392)
    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).
  • Basically what it comes down to, for me and me alone, is one of two things:

    • What the hell, I already wrote it, I don't want to be a salesman, why the hell not just plop it out there just in case it's useful to someone else?
    • Getting this idea (expressed as code) out there is much more important than profiting from it.

    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.

  • by Dark Paladin (116525) <jhummel.johnhummel@net> on Thursday September 06, 2001 @10:24AM (#2259387) Homepage
    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.

  • Pro Bono Publico (Score:4, Insightful)

    by Paul Johnson (33553) on Thursday September 06, 2001 @10:24AM (#2259388) Homepage
    For much the same reasons that lawyers do Pro Bono work:
    • Establish a professional reputation for quality work
    • Establish a social reputation as a nice person
    • Make the world a better place

    (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 [opensource.org] for all the commercial reasons for releasing open source.


    Paul.

  • I USE OpenSource and other free software because I find it to be better than commercial software, and more responsive to users requests for a lot of different things. WinAmp - rocks. I hate Windows Media Player still. Plus, since everyone is able to develop for WinAmp, there are all sorts of wonderful plugins for it. Linux - love it! It may not be as simple as Windows yet, and yes, there's still plenty of little desktop features to be improved upon, but it's a huge project. I just installed Mandrake8.1 last night. Man the new KDE is sharp, and Konqueror is EVEN better than before. Even after installing win2k recently from Win98 I can't say I was all that wowed by it, just another Winblows OS.

    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.

  • Very simple (Score:4, Informative)

    by LordNimon (85072) on Thursday September 06, 2001 @10:29AM (#2259439)
    People who support Open Source development understand the value of it. When you choose an Open Source product, you get the source code, which allows you to do whatever you want with the program, more or less. You can fix bugs or add features. You can determine how it really works, so there are no hidden "back doors". All of these are real benefits that only Open Source gives you.

    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.
  • Why do I do it? (Score:4, Interesting)

    by t_hunger (449259) on Thursday September 06, 2001 @02:40PM (#2259450)
    Why do I spend time developing free software? That's difficult to answer... For a bunch of reasons:
    • I want to learn something. Not just programming in general, but how complex systems for textprocessing, graphics rendering, multimedia streaming, ... work. I found that actually doing one is the only way to understand what's going on inside those systems! IMHO participating in one free software project should be mandatory for any student of computer science.
    • I use Linux, mozilla, xchat, blackbox, ... exclusivly, no commercial software at all! That software is just great for me, I'm so happy that I don't have to bother with licensing and pricing everytime a new version of a program I like comes out!

      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.
    • I like the people: Most tend to be open to new ideas sharing their own and using those contributed by users. Almost everyone I meet so far was very friendly and willing to teach and/or learn. They tend to know what kind of work is involved with a big project and tend to respect those contributing their time and energie into one .
    • I like the ideas of free software. I believe its a good thing. Yes, that's rather idealistic, but that's how I am,


    Regards,
    Tobias
  • by swm (171547) <swmcd@world.std.com> on Thursday September 06, 2001 @02:44PM (#2259470) Homepage
    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.
  • John 'maddog' Hall, President of Linux International paid a visit to the florida linux user exchange [flux.org] to talk about open source in a business perspective. He said the following:

    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.

  • I started because there was an app I used all the time in MacOS and didn't have in Linux. So I ported it to KDE (source was available!) and figured if I found it useful, others might also.

    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?

    • I hope my project will become popular and the ideas in it appreciated and attributed to me.
    • I want to participate in the gift economy of Open Source.
    • Related to the first, I hope to improve the way people approach certain kinds of tasks and give them the tools and ideas to do so.
    • Because I don't believe in the existence of copyright protection as it currently exists and feel such protection is damaging to intellectual progress.
  • Here's a quote from another Slashdot [htp]-linked website [slashdot.org] 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.

  • Why do we do it? (Score:5, Informative)

    by chabotc (22496) <chabotcNO@SPAMgmail.com> on Thursday September 06, 2001 @03:06PM (#2259724) Homepage
    First off, every person has his or her own motivations. So this will never be a complete or even very acurate list.

    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 ;-) 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.

    * 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 .. compare our cute Tux pengiun to the windows flag ... you have to admit, its a lot more cudable right!?

    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.
    1. Because we want to contribute to the advancement of science. Imagine a world where you need to license Calculus 8.0, and no explanations are given on how any of the math works, you're merely given magical answers to your queries. It would make it nearly impossible for mathematics to advance in the ways it has.
    2. Because we're lazy. Nobody likes when a product that had released internally has a bug in it six months after release, when they've long ago forgotten the internals. By distributing interal use tools as open source, where appropriate, you get a larger base of users and the bugs are found and fixed faster. Additionally you get the benefit that occasionally other users will actually fix the bugs for you.
    3. Because we want recognition What better way to show the world that you're a really great coder than to show the world your code. You can show potential clients or employers examples of your work to entice them to hire you.
    4. Because it feels good It feels good to know that for once your work has done more than just make your company money, you've made other people's lives a little bit easier.

    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.

  • First, programming is a craft. You may gain some theoretic backing in formal education, but you only improve by writing code. Lots of code. Lots of code that recieves criticism from intelligent peers. This is the first pattern I put on the table: that a craft skill improves only by repeated efforts that meet the demands of the outside world.

    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.
  • The compelling practical argument, summarized here [advogato.org] and here [linuxtoday.com], goes like this:
    Suppose you are using some Free Software in your business. You find a bug or discover you need a new feature, so you take care of it (or hire it done) yourself. Then you have what you need, and you don't really have to do anything else.

    However, a new version of the program will soon be released. You must decide whether you want to use the new version, and if so you must integrate your changes into it. This happens each time a new version comes out. If you were to send in your changes and get them integrated into the mainline code, each new version would already have your changes.

    As long as you keep your changes private, nobody else is using them. Once your changes get integrated into the mainline code, other people start using them, and improving them. As a result, each new release of the program not only has your changes integrated, it may have improvements on your changes.

    Thus, publishing your changes (1) cuts your own workload and (2) attracts free assistance from others with similar needs. The process doesn't depend on altruism or a sense of community, although many people are also motivated that way. It doesn't depend on people working to establish a reputation, although many are. It doesn't depend on proprietary alternatives being intolerably restricted, expensive, or buggy, although they often are.

  • Nuff said. ;)
  • by cvd6262 (180823) on Thursday September 06, 2001 @03:14PM (#2259817)
    At Linux World in San Jose, Bob Young said that people always ask him why other industries haven't caught on to open source.


    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.

  • 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.

  • by uriyan (176677)

    I'm only 16 years old, and my contribution so far has been quite minor (only xml2swf [sourceforge.net] 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.

  • by xueexueg (224483) on Thursday September 06, 2001 @03:25PM (#2259909)
    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:

    • Sympathy and compassion for users. I have been burned as a user, where I wanted to maintain some software that I use, but could not actually do it w/out a lot of effort, because I didn't have source code. (And I'll admit, I'm a lazy old geezer now; I haven't manually created binary patches since my C64 days.) Once I've been burned this way, I feel a little more guilty about burning others. Some people might think that "burn" is a bit strong of a word, but when you grow dependant on something and then can't get a simple bug fixed because the owner is out of business, or the product is discontinued, or the vendor won't sell you the fixed version except at a high price that will also necessitate a cascade of other expenses (*cough* Microsoft *cough*) then you feel like a victim, whether strong-IP types agree that you technically are one or not.
    • Free maintenance. If you release source code, then maybe someone else will do your work for you. If you wrote the program professionally, this is a bad thing since the part of the purpose of releasing closed software is to have a monopoly on maintenance (i.e. customer has to come back to you if they want changes). But if you didn't write the program professionally -- if you did it for fun or just because the program was something you needed (the itch) -- then releasing it as source is useful, because someone else might improve it and then you might get ahold of the improved version, thereby getting the benefits of someone else's work, for free.
    • Increase value. All else being equal, Free Software is worth more to the user, than closed software. Thus, perhaps you can charge a higher hourly rate for creating it. (Note: I haven't actually tried this.)
  • 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 know why I code, and I know why I prefer open source software. The reasons aren't profound, but I think they make a lot of sense.


    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.

  • 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.
  • 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.

  • Everyone has heard the stories about two kids in a garage that make a new kind of software and become millionaires. Of course it isn't that easy. The software business is tough to break into. Consider the following:

    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.

  • by slffea (152586)
    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 ...
  • Why do I write code in my free time, when I've been writing code for pay for over 20 years?


    I started writing Exult [sourceforge.net]

  • 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.
  • 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!"
  • 1. Because you dislike the solutions that are being provided and want to show people your alternative solutions. This also explains why Linux refuses to have a "consistent user interface": no matter what that interface is, somebody will feel that it is bad and will provide their own example in the hope it will change the public's mind.

    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.

  • Why do I write code in my free time, when I've been writing code for pay for over 20 years?


    I started writing Exult [sourceforge.net] 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.

  • 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.
  • by dsplat (73054) on Thursday September 06, 2001 @05:57PM (#2261002)
    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.
  • by CoreDump (1715) on Thursday September 06, 2001 @06:11PM (#2261092) Homepage Journal
    I'm one of the authors ( well, I contribute code and answer questions on the users mailing list ) for FreeRADIUS [freeradius.org].

    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. :)

  • I'm going to answer a slightly different question, why do I do it.

    There are a few distinct reasons I do it:

    1. Sometimes it the same reason I take photographs, I just want to do something creative. The goal isn't to solve a problem for myself, or anyone else, but just to have some fun. Once I've done that it seems like a good idea to share the code, in case others want to have fun. Sourceforge is nice here because I can share the code with minimal effort, and no commitment of my resources. To some extent both w3juke [sf.net] and xtank (anyone have a link? I stopped screwing with it almost a decade ago!) are explained by this.
    2. Some times I'm a little more focused. I have a method I want to test out, and either no problem at work can benefit, or I'm a little leery of experimenting with that method at work. I learned how to use the STL on my own dime for example. This covers a lot of ground (w3juke [sf.net] was my STL playground for a while which is why it has odd uses of things like priority queues, and O(logN) algos used for datasets not likely to have more the 50 or so elements!). Again, if the code is sound, there is no reason not to share it.
    3. Some times it really is to solve a problem I'm having (either not at work, or not one that justifies work time at least). My mkavi program (not currently up -- it was at my last employers anon ftp site, maybe I'll get it off to sourceforge soon) is an example of that. I really wanted to convert some raytracings I had made into movies, and didn't have a Windows box or anything. So I wrote a program that did it. I didn't have a 100% free license (it was a "free for noncommercial use" deal), and an aerospace firm actually ended up paying a little money for it, enough to buy me a windows machine if I wanted :-). However it counts for some definitions of Open Source, and more importantly it describes a motive I have for doing Open Source work sometimes.
    4. Sometimes I do Open Source work on other people's code because it almost solves a problem I have (frequently I thought it did, but it turns out not to due to a bug). That is not quite the same as above, but pretty close.

    That said, there are some reasons I don't do Open Source:

    1. To get recognition. True, I got my first full time job as a result of writing xtank, but by and large few people get any real recognition for writing Open Source code. A few get to be Rock Stars (Linus for example), more get known only in "the field" (Keith Bostic for example), but very few people get much recognition. Esp. with the advertising clause of the BSDL being on the outs these days :-)
    2. To change the world. The world ain't so bad, and my code seems unlikely to change it anyway.
    3. To make money. It's too haphazard. Consulting work makes money, making money off Open Source seems too hard. I do try to get my (rare) consulting clients to let me Open Source code I produce for them, but it rarely pans out (it did for a Real Estate firm, anyone want some crappy DB code? It's free!).
    4. To destroy Microsoft. Don't get me wrong, I would like to destroy them, I just don't think my software will do it.
  • ..."trustware" being my term for software that trusts the end user to make the right decisions for himself regarding how many copies of the software to make, when and how to run it, whether and how to modify it, how best to understand how it works (which necessarily includes being able to look at the source code), and with whom to share it, as well as these same freedoms.

    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...

    ...that is, I wrote it, often designed the app or function myself, so I'd like to be able to use it myself for a variety of reasons, as I progress in life.

    Examples of what developing GPL'ed software allows me to do, that developing proprietary software does not allow me to do:

    • Show the software to friends, potential employers/clients, etc.
    • Learn from my own past mistakes, even long after finishing the job (or, for a "regular" job, leaving the company), by re-examining my own code
    • Possibly learn from industry experts how my code is wrong, right, can be improved, etc., without having to first get them to sign NDAs (Non-Disclosure Agreements) with my company (plus get permission from my company to allow it)
    • Reuse the code in other projects that might have a different general "shape" than the original (e.g. GUI code written for an email program might be useful in a vertical app that includes some form of instant messenging)
    • Allow anyone, anywhere to find bugs in a variety of ways, from normal ways like running the program, to "advanced" ways like examining the source code, to "esoteric" ways like writing automated tools (other software) that analyze the code and look for oft-committed bugs

    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!

  • by sumana (66640) on Thursday September 06, 2001 @06:29PM (#2261178) Homepage
    http://bis.berkeley.edu/~briewww/pubs/wp/index.htm l [berkeley.edu]

    Check out Steve Weber's work on the topic. WP 140, "The Political Economy of Open Source," articulates some interesting stuff.

  • Most of the posts so mention reasons like "I love to code" and "It feels good to give back" and the like. That may explain why Joe Random Hacker contributes, but it doesn't explain why large companies like IBM, Sun, HP, and AOL Time Warner are putting a lot of time, money, and manpower into open source development. These companies are motivated by profits, not by feel-good platitudes. So why are they doing it?

    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.

  • ...and open source developers don't necessarily fit the stereotype of the college student volunteering time on a kewl project.

    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'm all for computer dating, but I wouldn't want one to marry my sister.

Working...