Use Open Source insights
In our view: open source has won. Open source is how things happen going forward.
Introduction
Open Source is a key not-so-secret weapon in how we do things. It was also one of the key factors enabling our company to operate at lower cost and with much greater agility.
At Telos Digital, this is particularly critical, both a part of our strategic advice, and as a way in which either we, or our customers, can build/modify systems without the huge expense of starting everything from scratch, and with far greater privacy/security and control of our own destiny.
While Open Source now dominates much of the world of technology, it's surprising how many (large) companies haven't yet caught-on!
Explanation
"Open source" (as an umbrella term) refers to software that is authored and distributed, such that all users have the information (source-code) and the legal rights (license) to allow them to copy, study, modify, and redistribute it.
Open Source Advantages
There are many reasons to use open source, whether as applications, tooling, or infrastructure:
- Better Quality: in many cases, open source tools are better than their proprietary counterparts, being the first-choice of developers, who are constantly improving their own toolchains, sharing ideas, and learning from the best.
- Ecosystem: there is a vast range of accessible open source software: Ubuntu has 74048 packages at present, and there are many thousands more available to developers as libraries.
- Openness: because "the hood isn't welded shut", you can see how it works, which is essential if you want to modify a program, and helpful if you need to integrate/interoperate with it. This is also important for learning.
- Control: you can modify it in any way you wish, and you can share your changes, including with the upstream project. You can control how and where you run the program, and what it does with your data.
- Flexibility: open source code is usually highly flexible, because it is designed for publication and modification, and is built on the heritage of the Unix philosophy: many small tools and libraries each doing one thing, rather than a single large monolith.
- Interoperability: copyleft drives collaboration among independent teams, even among competitors. It is easy to combine libraries and tools into new bespoke applications, without having to start from scratch each time.
- Trust: because you can access the source-code, you can prove that the software is doing what it says - that it is reliable, and confidential. Even if you (personally) can't read the code, others can and do publicly audit it.
- Privacy: because you can run your own instance of the code, locally, or on a server that you control, you can be certain that your data is well-protected.
- Permanent: once you've got it, it's yours forever, without needing an ongoing payment, or subscription.
- No obsolescence: a vendor can never take it away from you, end-of-life it, force a major update, or impose price-rises, because you can always maintain the code yourself, work with the community, or pay a different 3rd party expert to do so.
- Bug Tracking: most open source projects have public issue-trackers, where you can point out bugs/defects, make feature requests, and upload your own improvements. You can collaborate with others.
- Zero cost: no per-user licenses, and you can redistribute and modify for free. This enables lower friction, as packages and security-updates can all be bundled together into repositories such as Debian.
- Scaling: a small per-user / per-month / per-transaction fee might be OK at the outset, but as your project grows, open-source means you can use, scale or resell the platform without major costs.
- Branding: you can host everything on your domain, with your unified identity and themeing. Unlike "Google-Docs [for Acme corporation]" or "Microsoft Teams [sub-branded as Acme]".
- Ubiquitous: open source is everywhere. Since 2020, every single one of the world's top 500 supercomputers runs Linux. So does every Android-phone, and almost every bit of Internet infrastructure, from servers to wifi-routers. Even the UK government.
Philosophy of Free/Libre and Open Source Software
In brief, and with some nuances, the terms
Free Software, Software Libre, Open Source, or F/LOSS, (and relatedly,
Creative Commons ), all refer to software which is collaboratively built, by standing on the shoulders of giants for the ethical purpose of contributing to a shared community, and the technical purpose of better engineering-methodology.
It uses the technique of copyleft-licensing to ensure that, when software is drawn from a community repository and then modified, those improvements
(or derivative works) must, in turn, be similarly-licensed and shared. This
protects all parties, by maximising collaboration, and eliminating license-costs and friction.
This video explains in more detail.
"If Nature has made any one thing less susceptible than all others of exclusive property, it is the action of the thinking power called an idea... No one possesses the less, because every other possess the whole of it. He who receives an idea from me, receives instruction himself without lessening mine; as he who lights his taper at mine, receives light without darkening me." - Thomas Jefferson, 1813.
Free as in Freedom
A fundamental axiom, and deeply ingrained philosophy for developers.This is the philosophical rationale, which underlies the GNU GPL software license, which in turn, subverts copyright law (i.e. copyleft) to favour cooperation, which in turn underpins the technical and practical methodology of open-source collaborative development.
A program is Free Software if the users have the four essential freedoms:
- to run the program, for any purpose.
- to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
- to redistribute copies so you can help your neighbour.
- to distribute copies of your modified versions to others. By doing this, the whole community can benefit from your changes. Access to the source code is a precondition for this.
Open Source
A technical methodology, whose rules ensure mutual co-operation.Open-source is the practical methodology.
It focuses on technical matters, such as: source-control (e.g. Git); distribution package-management (e.g. dpkg); public bug-tracking (e.g. Bugzilla)
and documentation (e.g. Wikis); common technical standards; code re-use (shared libraries); avoidance of monopolies (patents are considered bad form).
The source is visible, leading to pride-of-ownership. Anyone may fork the code; code contributions are merged upstream on their merits.
The key requirements are:
- Free Redistribution. Any party may sell or give away the software. The license shall not require a royalty or other fee for such sale.
- Source Code. The program must include source code, and must allow distribution in source code as well as compiled form. The source code must be the preferred form in which a programmer would modify the program.
- Derived Works. The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.
Not Proprietary
The opposite of F/LOSS is called "proprietary-software" or "closed-source" software. There, you cannot inspect how it works, nor can you modify or fix it. Often, proprietary software is extremely high-cost (e.g. Oracle database), or high-priced for businesses/consumers
(e.g. Microsoft Office, Google-Suite).
It is sometimes given away at zero price, or as a service, often with the aim of
encouraging users to migrate to a paid, or advertising-supported product.
Applications
Here are some of the tools and platforms we love, and on which our business depends: Linux, Apache, GNU, Ubuntu, Debian, PostgreSQL, PHP, Python, NumPy, SciPy, Bootstrap, jQuery, Plotly, Superset, Firefox, WordPress, Nextcloud, Git, Gitea, OpenStack, MediaWiki, RT, SuiteCRM, Taiga, LibreOffice, GIMP, ImageMagick, Postfix, Roundcube, OpenSSH, Icinga, Puppet.