Technical Articles

Tech Articles from your friends at Oracle and the developer community.

Topics
                    Topics

                    What is Open Source?

                    The term originally referred to software created with code that was accessible to the public. In other words, anyone was free to view, modify and distribute the code in any way they liked. The definitions and meanings have grown and evolved, however—much like how open source software does. Generally speaking, open source refers to the design and engineering of a product or solution that’s made open and accessible for community involvement. It’s a decentralized method of working that leverages communities to find new solutions to problems within their industries and their communities.


                    Defining Open Source and How it Shapes Technology

                    While many see software as something you design, develop, package, and then sell, the foundations of the software development world hinge on open source. In fact, there’s scarcely a technology company today that doesn’t benefit from open source in some way.

                    Because of these foundations, open source is less about software and more about ideology. It’s turned into a movement and a way of production that shapes technology at its core. The model and values that drive open source methods are often at the forefront of solving some of the world's biggest problems in science and technology.

                    What is open source development?

                    Open source development refers specifically to applications and software made in an open and collaborative way. This is an alternative to software created by companies or individuals with closed source code, or “proprietary” software.

                    This puts the development and progress of the software—whether it’s a website or an operating system—in the hands of the community at large rather than a single company. Rather than a closed feedback loop, open source provides a way for a large community to contribute to software development through collaboration, peer review, open discussion, and outside perspectives that otherwise wouldn’t be available.

                    How does open source development work?

                    Open source development happens collaboratively. While both binary applications and source code are freely distributed in open source, the main codebase is maintained by a single individual or a group of individuals. This is typically accomplished through versioning.

                    Versioning is the practice of maintaining and iterating on source code for the benefit of collaborative development efforts. A central repository is used by open source collaborators—GitHub, for example—for uploading and maintaining source code. When a developer makes a contribution to the code, it’s uploaded to the main code base where it’s then inspected before being merged into the main source code.

                    This same method of version control is typically used in private software development. The difference is that, in open source, developers benefit from contributions from a much larger pool of developers.

                    Contributing to Open Source

                    What is the open source development model?

                    In an open source development model, an application or product is developed and the source code is released along with an appropriate open source license. Open source software can start with existing software or it can be developed from the ground up. Once source code is released, other developers can start working on bug fixes or expanding on features in the initial build. As the source code develops, the code is merged into the project and the project grows.

                    Developers can also use the software as a foundation for their own solutions. When projects differ significantly, they can ultimately evolve into their own dedicated projects that diverge from the purposes and vision of the initial software. Even in forks, original source code benefits as much of the same code can be easily ported to the original project or other projects that have grown from it.

                    Why do people make open source software?

                    There are a lot of practical reasons why people choose to produce open source software. The open source community is an active one, and because of this, open source software benefits from peer review. Code is regularly checked, reviewed and improved upon by a community of peers.

                    Developers also prefer to make open source software for practical reasons too. Open source software is free. Many developers believe in the libertarian ideas of open and free software and that software should be something akin to free speech or free expression. Another reason developers prefer open source is transparency. Many developers want to know exactly what’s happening with their data and open source software puts everything out in the open, giving people the power to see exactly what’s going on behind the scenes.

                    Developers also enjoy the benefit of reliability in open source software. Proprietary code created by a single author or company is often at the mercy of that author or company. Waiting for an update to fix a critical problem can be problematic. And this is a two-way street too: for developers who don’t want to be hindered by making themselves the sole designator of fixes and additions to their software, open source provides an excellent solution.

                    Open source software also offers much more flexibility than traditional closed-source software. Software needs vary across industries and markets and oftentimes a particular product fails to meet the needs of a particular company or venture. The flexibility of open source means that you can utilize a platform that’s already been built and modify it to meet your specific needs.

                    At the end of the day, developers make open source software because they believe in what it stands for: an open and collaborative effort that transcends barriers to create something that benefits the public.

                    What is the best open source software?

                    Defining the best open source software would be difficult to quantify as there are endless products and applications that utilize some form of open source software in some way.

                    Linux is a very popular and successful example of open source software. While you may think of it as the providence of people who practice software development, Linux software powers more products than you might think. Linux also powers an endless array of internet-connected products from smartwatches to ATMs.

                    Linux and up-stream open source contribution

                    Do developers prefer to build on open source platforms?

                    Many developers do prefer to develop on open source platforms. These platforms offer rich libraries of customizations and plugins made by other developers who understand the software development workflow. It also provides the tangible benefits of not having to do all the heavy lifting themselves and not being hindered by potential roadblocks from vendors or private APIs.

                    Moreover, open source is more rewarding for many developers in terms of collaboration. Active communities of developers all working on a project together mean that a developer can always find resources, assistance, and fresh perspectives that reach far beyond a single company or even industry. Developers see the value of progress and community contribution and often take pride in embracing the open source philosophy for these reasons.

                    Why is open source 'good'?

                    Open source creates an environment of collaboration across boundaries and barriers which often stifle progress and innovation. It offers the leverage of having a vast community of passionate developers and engineers all working toward a common goal.

                    You can think of it in terms of how science is structured. Science and everything it touches—including technology and medicine—would not be where it’s at today without the involvement and collaboration of a worldwide community of peers all working together. Open source benefits from the same sense of openness and community.

                    Why is open source important?

                    It could easily be argued that much of the technology we have today wouldn’t be possible without open source software. It’s the foundation of many products you use on a daily basis. Open source software encourages innovation by tapping communities of passionate developers to come together and collaborate in the creation of better technology and solutions for everything from smartphones to the internet itself.

                    Without the concept of open source, progress stalls and stagnates. Without the review and insights of a community of developers all working toward common goals, software development risks becoming linear and predictable, and progress grinds to a halt. Moreover, peer review ensures that software is developed in a thoughtful and foreword-thinking manner, as is the case with projects like OpenAI—an open source project focused on creating safe and ethical artificial intelligence.

                    Latest content

                    Explore and discover our latest tutorials

                    Serverless functions

                    Serverless functions are part of an evolution in cloud computing that has helped free organizations from many of the constraints of managing infrastructure and resources. 

                    What is a blockchain?

                    In broad terms, a blockchain is an immutable transaction ledger, maintained within a distributed peer-to-peer (p2p) network of nodes. In essence, blockchains serve as a decentralized way to store information.

                    OCI CLI

                    The CLI is a small-footprint tool that you can use on its own or with the Console to complete Oracle Cloud Infrastructure tasks. The CLI provides the same core functionality as the Console, plus additional commands.