Despite the proliferation of open source projects, some people are still fuzzy on the terminology and basic open source concepts. Susan Harkins put together this list to help clear up some of the confusion.
Open source is here to stay. According to Jeffrey Hammond, an analyst with Forrester Research, "Nearly four out of five developers use open source software for development or application deployment." Simply consider the success of LAMP (Linux, Apache, MySQL, and PHP) and you can't deny that open source is a strong contender for resources. Even so, a certain amount of confusion and misunderstanding still surrounds open source projects. The next 10 terms aren't specific solely to open source, but they're part of the lingo you should know.
Note: This article is also available as a PDF download.
1: Open source
Open source refers to software that's free to the public. More specifically, the software's source code is available to the public to use and/or modify. You can use the program as is or modify its source code to suit your needs, without fear of legal reprisals. Take it home-it's yours; it's free! Technically, open source refers to a great deal more than free stuff. It defines copyright, licensing, domain, and consumer issues for this special software niche.
You might think the whole point is free software, but it isn't. The real push is better software. Developers eliminate bugs and make improvements. They then redistribute their modifications — and it all happens much quicker than in a commercial product. If your commercial software has a bug, you have to wait for a patch or upgrade, if the company even decides to fix it. If open source software has a bug, developers in the community fix it as quickly as they discover it.
2: Source code
Every product has source code. However, commercial software comes in a compiled (ready-to-run) version. Usually, you work through an interface that communicates with the source code, and you never have direct access to it. You can't see it and you can't alter it. Open source, on the other hand, includes the source code in the compiled version. You can access it and modify it.
3: Free distribution
Free distribution doesn't sound like a specialized term, does it? It's not, but understanding how this term fits into the open source community will help you understand what open source is and isn't. Open source isn't just free access to the source code. Not only can you use open source to develop a custom application, you may then freely distribute your application. To learn more about what constitutes open source software, read The Open Source Definition.
In addition, open source has grown and there are now many hybrids where some code is developed behind closed doors. Licensing is also branching to include products based on open source but not freely distributable.
4: Open Source Initiative (OSI)
The OSI is a nonprofit corporation with a mission of education and advocacy for the open source community. Anybody can call their program open source, but this organization maintains compliance and trademark information that the industry at large recognizes in a cooperative effort. In other words, everyone plays nicely with the help of the OSI.
Once the original programmers distribute an open source program, it goes out into the wide, wide world, where everyone uses and supports it. That's the program's community — a collaborative effort, where developers improve the code and share what they've learned. An active and knowledgeable community is vital to the health and success of an open source program.
Committers are the community's quality control experts. Somebody has to control the process. Committers actually decide what changes, based on community experience, make it into the originally licensed program. As you can imagine, being a committer is a bit like walking a tightrope. It's a balancing act with the community's good will on one side and the integrity of the source code on the other.
Users are still free to modify and distribute their changes. However, those changes don't always make it into the originally licensed version.
7: Revenue trigger
This isn't really an open source term at all. But move into the open source sector and you'll hear it a lot. If programmers give their products away free, how do they eat? That's where revenue triggers come in. Many rely on ad-driven sites. Others charge for support, training, consulting contracts, custom development, and so on. Subscriptions that guarantee specific support, services, and upgrades are somewhat popular. Embedded software is open source software that's distributed in a larger commercial package. Other products and services often create revenue. The original open source software remains open source, but the originators also sell complementary products to use with it.
In the article I mentioned earlier, Forrester analyst Jeffrey Hammond said, "...40% of IT managers and executives ... say their companies use open source software." Do the math and you'll see that's why we have governance. Those statistics tell us that developers are using open source software that's not approved by management.
The availability of open source software makes it easy for developers to make choices without corporate oversight. That might be good for the individual developer, but not so great for everyone else. The lack of technical support and warranty are just two administrative concerns. For a look at potential problems, read 9 ways to avoid open source pitfalls by Andrew Till. Organizations need a strategy for recommending and controlling open source programs.
9: Cloud computing
Cloud computing refers to an on-call service that supplies software and storage via the Internet. None of the components resides on the end user's local system. A cloud network provides common business applications that users can access from most anywhere using a Web browser or Web service because everything the user needs is stored on cloud servers.
The National Institute of Standards and Technology (NIST) defines the cloud as follows: "Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."
What's the cloud have to do with open source? A lot more than you might think. Many cloud applications are open source programs. Just remember that the cloud doesn't distribute the software, it runs the software as a service.
10: General Public License (GPL)
Why would you want to license free software? Licensing guarantees certain rights to users:
- They can use the code anytime.
- They can redistribute the code to anyone (with similar licensing restrictions).
- They can create a custom application (derived work) based on the code and redistribute the open source code with the derived work (again, with similar licensing restrictions).
The original authors of the open source code can stop distributing the source code, but others can continue to distribute it. Licensing also quells contributor squabbles. You contribute freely, and others freely distribute what you contribute, for all time. You can't lay claim and take it back. This type of license protects the collaborative effort.
You'd think it was all about the users, but it isn't. Many programmers think it's the only way to go: write the original source code and let the community determine its fate. Using the many revenue trigger strategies, programmers of open source products can build a reputation and make a living. It's an interesting and innovative way to break into an otherwise monopolistic industry.