Where does the culture of open source in programming stem from?


How/why do all the thousands of packages that are available as open source and enable basically everyone to code and make programs stay free? Everything else in the world is turned into a product to make a profit.

This is similar to the extensive resources available on the internet like StackOverflow where people literally give people answers to their problems for nothing. Like, someone could work for a company and use other peoples work and benefit from it.

In: 24

Just to clarify something: most open source software includes license agreements that restrict when and how users can profit from that software. This (theoretically) prevents companies from profiting off open source when the developers choose to disallow that.

There’s a few reasons.

One is the community aspect of programming. The number of programmers who have themselves been helped out by open-source solutions and programs is astounding. Pretty much every programmer in the past 20 years, regardless of experience, has benefited from StackOverflow (or similar resources). Many of those programmers feel obligated to give back. And this crowdsourcing of solutions makes programming a profession where progress can be made with a quick google search. It advances the profession as a whole which benefits all participants.

Companies also try to encourage this sense of community. For one, it creates more competent programmers overall which is a net benefit in any industry. Crowdsourcing solutions overall saves time and expense, so many companies see supporting this culture as a positive cost saver.

Another reason is portfolio building. Quite a few programmers have expanded their network, displayed their skills, and found lucrative opportunities by creating open source repositories.

Many open-source projects are also improved through crowdsourcing. Other programmers can suggest changes to the main repository or create a fork of their own where they can improve the program, which can create new tools and techniques that save everyone time.

All of this makes programming an accessible profession. The community supports it because it helps themselves. The companies support it because it leads to better and faster results. And it opens up the skillset to new people who keep the cycle going.

ESR’s (long) essays on the subject are *highly* recommended.


The short version is “it was that way originally, trying to sell software by keeping secrets was an innovation, one which a bunch of smart people didn’t like, so they staged a revolution in the 80s, and the whole thing really took off over the next 20 years”

In the early days of computers, computers cost a lot of money, $20,000+. They were very simple and came with very simple software. In those days, you bought the computer and got the software for free. You got the source code so you could modify it for your needs. Then, once companies realized that software was actually the important part, they stopped giving it away and started charging for it.

There are two main movements that grew out of this. First was the Free Software Foundation. They started in 1985. They said if these companies aren’t going to give us their software anymore, we will write our own operating system and other software tools. And we will make rules you have to make the source code available, no matter what. They started building the tools to create an operating system, called GNU. They never got their operating system finished, but then came along Linus Torvolds, took all their tools and started building Linux.

Then in the late 90s, Linux and free software started becoming popular, but it still had this hippie / anti corporate attitude. So along came the Open Source Initiative and rebranded Free Software as Open Source to be more corporate friendly. They advocated that developers should make their source code free, but not require those who use the source code to make it free as well. This was a big difference from Free Software Foundation.

But then around 2000, the whole computer industry changed again. It was no longer about selling software, it was about selling services. So then companies realized if you make the software free, get people hooked, then sell them services or ads.

So companies like Google give away Android so that phone companies will use it, and then people get hooked on Google’s services.

For more on the difference between Free Software and Open Source: https://www.gnu.org/philosophy/open-source-misses-the-point.en.html

It is also worth pointing out that a number of companies rethought their approach to software development when they realized that open source was better and more secure than what they were able to produce “in house”. I believe this also helped to spur further growth in OSS.

Sometimes it’s fun to see your creation get adopted by many as in the long run the iteration of your code will get better and better. Same reason with people having fun watching let’s players. Even if it’s not you playing the game it can still be entertaining just to see how far a friend or an entertainer will progress in a game

Creative people generally enjoy sharing their creations with others, and collaborating with other creative people. For some people, the *code* is the creative effort and they’re proud of it.

Monetizing things always comes later, and the people prioritizing profits are almost never the same as the people who’re doing the actual work.

People are giving answers to this question for free. Why do people think they have to profit from everything?