Top Open Source Terms You Need To Know
Top Open Source Terms You Need To Know
Whether you're a newcomer needing an introduction or an OSS vet who needs a refresher, we've got just the list of terms for you.
Join the DZone community and get the full member experience.Join For Free
Find vulnerabilities in your open source libraries in seconds. Get your 30 day free trial today!
Open source certainly isn't new, and it may not even be new to you. But if this is your introduction to open source, or if you just need a refresher on some of the most frequently-used terms in this unique field of software development, we've got you covered. When you've got a firm grasp on the meanings of these terms, take a look at our latest Open Source Guide to read a little more about all things open source. And if there's anything we've left out, feel free to leave it in the comments so we can add it to the list!
Apache Foundation: A nonprofit organization founded in 1999 that oversees development and hosting for hundreds of open-source projects, including Kafka, Hadoop, Apache Web Server, and more.
Branch: A duplicate of a piece of code that is currently in version control, so changes can be made without afecting the main source code.
Committer: A member of the community that contributes to the code of an open-source project in the form of new features, bug fixes, or performance improvements.
Community: A group of users that use or contribute to an open-source project.
Community Guidelines: A set of rules decided on by community moderators of an open-source project, usually related to how contributors add code or disallowing negative treatment of other community members.
Eclipse Foundation: A nonprofit organization founded in 2004 as a steward of the Eclipse IDE community, which has since expanded to include other open-source projects including Jakarta EE (formerly Java EE).
Fork: A project that was originally based on another project. Users may fork a project if they want to modify it for their own personal use, or drastically change it. For example, CI/CD tool Jenkins was developed as a fork of Hudson.
FOSS: Acronym for Free or Open Source Software
Git: A version control system created to track changes made to source code by multiple users.
GitHub: A web application for hosting code that is version-controlled using Git.
GNU General Public License: A widely used software license, first used by the GNU operating system, that makes it explicitly clear by the software's copyright holder that the software can be used and modified by anyone.
Governance: The process in which a business or team manages the adoption of open-source software into existing projects or workflows.
GPL (General Public License): A copyleft software distribution license created by Richard Stallman that is a standard-use document for open source projects. The GPL currently comes in versions 2 and 3.
IDE (Integrated Development Environment): Development platform that includes the tools needed to code in a single environment, typically including a text editor, debugger, and compiler as basic tools. IDEs may be language specific or may include multiple languages.
License: A declaration of how a piece of software is to be used. In open-source software, licenses often make it legally explicit that the software can be used or modified by anyone.
Licensing Obligation: responsibilities of the licensor and the licensee that are included either expressly or implicitly in the license. One of the basic implicit expectations of licensor is that they provide working software with the appropriate tools to access it; an expectation of the licensee may be that they abide by a license's copyleft use agreement.
Linux: An open-source operating system built on the Linux kernel created by Linus Torvalds and components of the open-source GNU operating system. It is the leading operating system installed on servers and mainframes, as well as the leading general-purpose OS due to the kernel's use in Android phones.
Maintainer: The person who moderates, tracks, manages, and organizes an open-source project.
Open Community: A community that allows anyone to join and participate. All decisions and group actions take place by transparent processes. Most communication is done publicly. Open source communities should also be open communities.
Open Data: Data that is freely available to anyone to use, republish, analyze, and republish without copyright infringement.
Open-source Software: Software that is freely available to use and modify by anyone. This is typically codified by using an open-source license.
ODBC (Open Database Connectivity): A C programming language interface designed to allow applications to access many different database management systems (DBMSs) independently from a single point. A Microsoft interface, ODBC needs system-specific drivers to facilitate interactions between applications and each DBMS. Open source DBMSs have open source ODBC drivers.
OSI (Open Source Initiative): Open Source Initiative is a non-profit organization that dedicates itself to promoting the use and spread of open source software.
Proprietary: Proprietary software is owned by a single company and is not free or open-source; well-known examples are Adobe and Microsoft. This type of software is often compatible only with other software from that company, encouraging users to stay loyal to their proprietary software.
Pull Request: A notification from a committer that explains what changes have been made to source code, particularly as part of a GitHub repository.
README: Should be included in every open-source project. Contains information on what the project does, what the goals are, how it's used, how to get involved, who the maintainer is, and everything else you need to get started on the project.
Source Code: Code that is written by a programmer to be executed by a computer. All software is created by source code, but source code is not always included with software when it ships.
Technical Debt: Also called "code debt" or design debt," technical debt is extra work that builds up, usually when an easy, short-term programming solution is taken rather than a better, long-term solution, forcing the developer(s) to do more work later to fix it. Usually used in the context of refactoring. Taking the easy way out leads to technical debt, which must be "paid back" in the form of rework in the future.
Opinions expressed by DZone contributors are their own.