Open Source - Why Do We Do It?
mikosullivan presents us with a unique opportuinity: "This Saturday, Sep 8, I have an appointment to meet with Congressman Rick Boucher to discuss open-source software. I made the appointment after talking to the congressman at a town-meeting here in Blacksburg, VA. During our short talk he asked a question that (not being a particularly talented public speaker) I found difficult to answer: why do open source software developers devote their time and talents to something they give away? That's the question I'd particularly like to answer: why do we do it? Answering this question may be the key to resolving public FUD about open source. This meeting is part of the
opensourcelobby.org efforts."
... 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 :-)
Ego.
People write free software for the same reason they want nice cars and big houses - so people will notice and envy them. Not that there's anything wrong with that, but it's no big mystery.
Quite simply, people write software of the highest quality they're capable of, then give it away, in the hopes that it will become popular, and they'll become a household name (even if only among geeks). People want to be able to go into an IRC channel, or make a Usenet post, and say something like "Oh yeah? You're saying I don't know anything about software? Well, you know vi? I wrote that."
Like woodworking? Build your own picture frames.
"Because it's there." Or, the geek version of it, perhaps, "Because we can."
Which is obviously no different from the views of commercial developers. The turning point isn't why such energy is put into it, it's why you give it away. And that should be self evident: in an increasingly, hideously commercialized society, developers are forced every day to work with things that don't work right, cost exorbitant amounts of money, and make you forego many of what should otherwise be your usage rights at the behest of whoever's selling said thing. Why give it away? To counterbalance the lunacy of current sales policy. Why put so much effort in? No-one likes working with junk.
AHHHHHHH! I'm burning with goodness again!
- Reakk, Sluggy Freelance
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.
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.
Apart from a few evangalistic & talented individuals I think most Open Source projects are started by relatively young hackers who want to develop their coding skills and try and write an application they feel would better their lives or their workstation.
... I'm sure Source Forge is littered with thousands of "Version 0.001" releases that will never make it to the actually useful stage.
I spent months of my free time trying to hack together a personal organiser/scheduler that could cope with my busy life before I gave up, sold my Amiga, and moved to a more modern platform. I must have started 100 different "projects" that I would be ashamed ever to show anyone *grin*
In my old days as a developer I worked with a guy who contributed a significant account to XEmacs and he done it because he was a power-user who was talented enough to be able to code in Lisp, and he felt compelled to help as he relied on Emacs for coding commercial apps. People like this are few and far between, and few have the comittment and long-term motivation required to take development through to completion, unless they are working in a paid, competitive environment with real customers, deliverables, and deadlines.
The problem is that not enough people band together, start a (semi) formal development programme with solid requirements, and then code/test it to completion
I know it sounds corny, but it's true.
I want to do something bigger than myself, something that has a real potential to help people in a serious way. I want to leave behind a legacy of good will when I'm wrom food.
I realize that programming free software is perhaps not the most noble thing one could possibly do, but it is what I'm good at. Free Software gives me the ability to use my skills as a programmer to do something really great, even if it is small in the big picture.
Laugh at it if you want, but that's the reason I write Free Software, not because of ego, or because I can, but because I believe that I am helping people --and that makes me feel good.
Jordan Bettis
``Wherever you go, there's another stupid sigfile quote.''Politicians make a decent salary, but generally much less than they could make in private industry. You might just as well ask the congressman why he puts his time and energy into public service.
The answer is probably similar for Open Source/Free software people 1) there's a certain satisfaction in doing something you feel is worthwhile, 2) the desire to leave the world a little better than when you found it, 3) recognition by your peers is very motivating, 4) even if you don't make money directly, it can help with your later career.
Another thing to keep in mind is that most of us entered the IT field because we have a passion for the technology. The reality of most corporate work is that we never get to do the really cool stuff that we dreamt about in school - real work is pretty mundane. Working on something more interesting on the side lets us do the stuff we dreamt of doing when we entered the field.
It is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail. - Abraham Maslow
(any lawyers out there want to add to the list?)
A congressman will be familiar with lawyers, and probably has a legal background himself, so comparing open source to legal pro bono work will put him on familiar ground and give you a shared context. Eg, ask "how would you feel if a big law firm called Pro Bono work 'unamerican'?")
Of course there are also all the commercial reasons why companies produce open source code. Its worth emphasising that many open source coders are actually employed to do it, so its not just a geek hobby. See Opensource.org for all the commercial reasons for releasing open source.
Paul.
You are lost in a twisty maze of little standards, all different.
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
No one can understand the truth until he drinks of coffee's frothy goodness.
--Sheikh Abd-Al-Kadir, 1587
IMHO, there are only three real reasons why people contribute to Open Source:
- The GPL and similar licenses force you to share your enhancements. Sure, you can keep the binaries to yourself, but if you want anyone else to use it, you must give them the source code. There's no way around that.
- Open Source developers understand that the only way Open Source works is if people contribute to it. So if you benefit from other people's work, it's only fair if you contribute to it yourself (assuming you're a programmer). If you use GPL software and create your own software, you understand that you promote the idea of Open Source every time you create new Open Source code and distribute it. It's a version of "voting with your dollars", except you're actually "voting with your code".
- Most programmers realize that selling software they develop is difficult. The marketing and support issues are time-consuming and expensive. If you want to develop a piece of software that you don't think is going to sell well, you may as well make it Open Source. You lose almost nothing, and you benefit others. Reasons for writing this kind of software include:
- You need the software for yourself, and no one is going to write it for you
- As a hobbiest programmer, you just like writing code. Some people like ham radio, others like building models, you like writing code.
I don't relieve belive the "prestige" factor that much. I don't think programmers out there really write that much code just so that they can impress others. In a meritocracy, that sort of thing isn't generally acknowledged.And the men who hold high places must be the ones who start
To mold a new reality... closer to the heart
That's why I feel obliqued to return something to the community that provides the software I use. Others do webdesign, translations of documentation, organization of shows, writting new software, whatever. I'm rather good (I think) at writting software, so that's what I do.
Regards,
Tobias
Regards, Tobias
NPR had Salman Rushdie on The Connection today. A caller asked why some of his novels were, or were not, set in India. After circling around the question a bit, Rushdie said
In the end, you write the book that grabs
you by the throat and demands to be written.
That's more or less how I feel about writing open source software.
First off, every person has his or her own motivations. So this will never be a complete or even very acurate list.
;-)
;-) A good story on this is Michael's reasoning to the Mexican goverment.. they could save over 400 $ USD by using linux instead of Microsoft's products. For companies and countries alike this can be a big plus.
.. compare our cute Tux pengiun to the windows flag ... you have to admit, its a lot more cudable right!?
However, in my experiance and perspective, the folowing factors play a role:
* Learning abilities in Universities teaching OS design need good tools and source to show what an OS is, does, and develops over time. Linux is an obvious posibility here
* Learning to program. A newbie programmer (taking classes, or as hobie) need a furtile ground to learn the tricks of the trade, they also need skilled people they can questions, and they need 'real life projects' to truely get into it. Ofcource open-source provides all of the above. Gnome for C UI programming, KDE for C++ UI programming, and all base GNU tools for low-level C coding.. Also, linux offers a wide range of languages (from bash, awk to fortran, pascal, c, c++ and java)
* Peer review. People love to hear they are genious. People love to be apreciated for there work. Open source offers the posibility to achive just this.
* 'The itch'. A populair expression in open-source development, often cited as a big reason. if one is using a program which is 'almost right', but has this one anoying bug, or this one feature missing, in open-source it is quite 'easy' to fix it, or add to it. Basicly it allows to 'scratch that itch'.
* Security. Many people are afraid that bugs will be left unfixed in comercial products (and not be able to do anything about this, see above). So they prefer software where many other hackers have looked at. Also the chance of back-door's are a lot less likely in opensource projects, its very difficult to hide virii or back doors in source code
* Political or ethical points of views. The its-not-microsoft factor can be important to some people. They hate the bloat, or the blue screen of deaths, or just think bill gates is not a nice person.. Whatever the reasoning behind it is, they think 'big comercial company' is bad and 'underdog' is good.
* Support for standards. Open source almost always creates open standards. Allowing, by its very nature, the competition to build a competing product, which is interchangeble at any document or protocol level. You would 'never' see a open source project create a 'properitaire standard', or modify existing standards without publishing every bit of documentation and source code. Remeber, this is how TCP/IP, ethernet, the Web, ftp, dns, etc came into existance. Had these been closed propriatairie standards, the internet as we know it would not have existed!
* Innovation. By its very nature, open source stimulates a darwinistic development. Several projects who achive to do the same thing, and the best one will recieve the most support and resources, thus growing faster and getting even better. It also allows for totaly new and crazy idea's to be invented and implimented, and who knows, it might be genious, and catch on like wild-fire.. Many big companies try to simulate this in 'brain labs', but they will never achive the same level of darwinistic development, since the company can only release one product, and has to 'play it safe'
* Cost. linux and many powerfull tools that run on it, is free. For home users, students and poor people alike, this offers the only choice to have a good computing platform. For other people it just saves a lot of money
* Support. There's a lot of support (mailing lists, open bug systems, friendly helping people) available for almost all linux software. This makes learning and using a lot easier.
* The ability to 'Change the world'. An individual can not steer the direction Microsoft or any big company is going, and thus cannot control the direction of computing in general.. In linux they can! By being able to contribute idea's and write your own versions of tools, or invent new ones, one can now 'steer' the way computing will work in the world. So it allows an individual to 'matter' in the bigger picture.
* Last but not least
Anyways, i'm sure there's more a lot of other points out there, but for me, these are the reasons why i like open-source development.
He tells them that open source is how every other industry works.
When I buy a car, I can take it apart and see how it works. I can even modify its workings. If I tried to fix a bug in a closed source program I could be sent to jail per the EULA.
It is important that lawmakers know that open source is not just a hairy programmer working late nights in his spare bedroom on a program he intends to give away. There are companies out there that have fully embraced open source because it's better for the consumer.
I'd rather have someone respond than be modded up.
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 do it because the equivalent commercial products suck. They are overpriced ( to the tunes of thousands of dollars ) and not as feature rich. Working for an ISP providing dialup services, having a functional Radius server that is scalable, reliable, and most of all, easily modified is paramount to the success of our business.
So, I get paid by my employer to write code that ends up under the GPL in the server. The entire world gets a killer server for a great price. And my employer gets the benefit of a larger array of "virtual programmers" who are constantly reviewing and improving the code. It's a shared development cost more than anything else.
Plus, I like writing code, and I've gotten to interact with people from all over the world as they use the server.
My 2 cents anyway. Others have probably said it better than I, but this is why *I* write code and give it away. :)
---
Segmentation Fault ( core dumped )