Use Open Source Neill Consulting
insights

Open Source Logos - a montage of some of the tools we consider essential.
Links are below.

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 is also one a key factors enabling our company and customers to operate at lower cost and with much greater agility.
At Neill Consulting, this is particularly critical, both as 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!

What is Open Source, and why use it?

"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.
  • 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. 
  • 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. 
  • Data Sovereignty: you decide how and where to process and store your data. You can run it on your own hardware. 
  • 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. 
  • Zero cost: no per-user license fees, 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. 
  • Relaxing: no installation-frustration! No credit cards, T&Cs, accepting EULAs, serial-numbers, license-keys, trial-versions, registrations, dongles, monthly subscriptions, expiries, …
  • Scaling: while a small per-user / per-month / per-transaction fee might be OK at the outset; 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:

  1. to run the program, for any purpose.
  2. 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.
  3. to redistribute copies so you can help your neighbour.
  4. 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:

  1. Free Redistribution. Any party may sell or give away the software. The license shall not require a royalty or other fee for such sale.
  2. 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.
  3. 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.

Proprietary Software

The opposite of F/LOSS is called "proprietary-software" or "closed-source" software.
You cannot inspect how it works, nor can you modify or fix it. If the vendor sunsets a product (or a server it connects to), there is nothing you can do.

Often, proprietary software is extremely high-cost (e.g. Oracle database), or high-priced for businesses and lower-priced for consumers (e.g. Microsoft Office, Google-Suite).
It is sometimes given away at zero price, often with restricted functionality, with the aim of encouraging users to migrate later to a paid product, or one supported by advertising. 

Software as a Service

or “Service as a Software Substitute” — the Cloud is just someone else's computer.
This is potentially risky: you entirely give up control by uploading your data and then renting it back [provided that the service remains commercially available].

3rd-party operated systems are OK if you can, both in principle, and in practice, download and run it yourself. Typically, this requires that means source-code is available under GPL or AGPL. For example, OpenStack and NextCloud. We advise avoiding “open-core” systems, or anything whose operation is opaque. This problem is particularly acute with A.I., unless it's local.

Myths

We should briefly address a few common misconceptions or FUD.

  • “Open source software lacks support.” [false]
  • Open source software is developed by a community, and provided gratis; primary support is by reading the documentation, searching, via a mailing-list, or stack-overflow. Excellent commercial support is also offered by Red Hat, Canonical, and many others, including us. You are not dependent on any one vendor, or their support timelines.
  • “GPL software makes my content subject to its license.” [false]
  • No, it doesn't, any more than printing a document would give the printer-manufacturer the rights to the content you wrote. Improvements to the program itself would be subject to GPL, but not work done using the program. 
  • “If anyone can read the code, then it must be less secure.” [false]
  • Actually, proprietary software often has hidden bugs; while open source software is far more widely audited — see Linus' Law.  The UK's CESG benchmarked this, and even back in 2012, Ubuntu Linux received the highest score.
  • “If it's given away gratis, then it can't be valuable.” [false]
  • This fundamentally misunderstands the motivation of many software engineers, who are driven by the creative imperative to make something awesome and share it, or to solve a problem for themselves. This is the same way that science makes progress. Copyleft facilitates collaboration, even between corporations, because there is no single outright owner.
  • “But freeware isn't any good.” [misleading]
  • Free software ("free as in freedom") is a serious endeavour, representing the developer's best work. It is distinct from trialware/freemium (restricted functionality till you pay for the full version), and adware (advertising-supported, in return for your data). You can tell the difference easily: only open-source gives you access to the source-code. The Linux distribution maintainers act as gatekeepers of quality.
  • “Open source is only for technical experts.” [false]
  • While proprietary software companies are highly profitable, and have commensurate marketing and advertising budgets, open source is ubiquitous. The OSS ecosystem has been quietly dominating, often in places you might not expect.  It is also an excellent choice for your desktop (or laptop) computer.

Applications

Here are some of the tools and platforms we love, and on which our business depends: Linux, GNU, Debian, Ubuntu, Apache, Certbot, PostgreSQL, PHP, Python, NumPy, SciPy, Bootstrap, jQuery, Plotly, Keycloak, Superset, Firefox, WordPress, Nextcloud, Git, Forgejo, OpenStack, MediaWiki, Moodle, RT, SuiteCRM, Taiga, LibreOffice, GIMP, Thunderbird, KDE, ImageMagick, FFmpeg, Postfix, Roundcube, OpenSSH, Icinga, Puppet

Open-source tools exist for practically every task, both on servers and desktop — and they are usually better than their proprietary counterparts.

Getting Involved

You can also use, and contribute to open source software. Here are a few tips:

  • Search for "Open source X" (where X is what you need). Look also on GitHub, or AlternativeTo.
  • Install a Linux Distribution, such as Ubuntu, or Debian, and look at the apt-packaged products (94 515 and counting).
  • Don't be afraid to compile from source. Usually, it's just a matter of: git checkout; ./configure; make; make install.
  • Join an existing project, ask for help on the mailing-list, and contribute bug-reports, suggestions, and improvements.
  • Write what you need, and release it yourself. Anyone can do this. We recommend the GPL v3+ or Affero GPL v3+ licenses.

Neill Consulting: Insight

Open source can empower your business, giving you access to industrial-strength tools, which you can customise and integrate, all with no license fees. We have centuries of combined expertise in using, writing, customising, and deploying open source software: please let us know how we can help you.
This article is one of a series of technical insights from Neill Consulting.