Dr John Yardley, Founder and CEO of Threads Software ponders what open source software is and how it works
If you come up with a great idea for something tangible – such as an engine – and don’t want your idea to be stolen, you either keep it secret or you patent it.
Keeping it secret may be difficult because the blueprint could be leaked. Patenting it involves exactly the opposite. You publish the idea in detail, but then you have the right to sue anyone that copies your invention.
However, software is different; in many countries, you cannot patent it. Rather like a food recipe, it can be extremely difficult to enforce the copyright.
Therefore, most commercial organisations tend to keep their software secret, or proprietary. While “reverse engineering” proprietary software is possible, without access to the source code, only the operation can be copied, not the method.
So, what is source code?
Computer programs are normally written in English- like statements such as:
PRICE = COST + PROFIT
This is called source code.
These English-like statements are converted into instructions that the computer can understand, called assembler language which then becomes just a sequence of numbers, called executable code or machine code.
It’s possible to convert machine code into source code, but it will be almost incomprehensible. All the convenient names such as “PRICE” will be replaced by numbers and any explanatory comments by the programmer will be lost.
Now that so many applications are run on remote computers in the cloud, it is becoming increasingly rare to get access to even the machine code.
The general public don’t like buying proprietary software
The problem with proprietary software, and indeed software in general, is that it is a “grudge” purchase. Because the customer doesn’t see anything tangible for their money, they tend to think it has little value. They justify copying a version of Word by saying that it hasn’t cost Microsoft anything. But of course, it has.
Microsoft Word is a bit of a special case though. There are thousands of programs that have been written by small companies for very niche applications and making them proprietary severely limits their adoption. Without widespread adoption, they don’t have the critical mass of essential testing.
How can open source software solve the issue?
Open source software is one solution to this, and it has many similarities with patents. You make the source code generally available in return for two things: –
- If you find any problems and fix them, you share your fixes with the community.
- If you sell a product using the open source code, you pay the developer a royalty.
Wonderful as this idea is, it took a motivated community to get it off the ground – mostly programmers in academia and government. Programmers, like everyone else, have egos and there is satisfaction in knowing your code is embedded in many applications.
The early niche open-source community soon grew to include programmers from commercial organisations. Although not initially keen to give away the code that cost them so much to develop, they realised that other people’s software was as valuable as their own and there really was no point in reinventing the wheel. Furthermore, they could massively reduce the development time to make hundreds of new services viable – open-source software can be tried at very little cost.
The evolution of UNIX as an example
The main downside to open-source software is, like anything else you do not pay for, you have no rights to seek damages if it doesn’t work. This downside has spawned a complete industry of companies that support, and hence monetise, open-source software.
This is well illustrated by the evolution of UNIX. UNIX is an operating system (like Windows and MacOS) originally developed by Bell Labs for their internal use. It was later made available royalty-free to academic establishments, and as a result saw widespread adoption.
Operating systems are an essential component of mobile phones as well as of desktops and the millions of microprocessors embedded within other devices – from aeroplanes to washing machines, providing the software infrastructure to support application programs.
UNIX remains a proprietary operating system, but other operating systems were developed that behaved identically to UNIX but written from scratch and made available as open source. One such was Linux.
Linux soon became very popular but commercial organisations could not risk basing their products on an unsupported operating system – i.e., one for which staff were not paid to fix bugs and support new types of hardware. In response, Red Hat was born and became one of the main contributors to the ongoing development of Linux, meaning that commercial organisations can use Linux under licence and pay Red Hat to support it.
Would this software have been popular if it wasn’t open source?
It’s doubtful whether the UNIX “model” would have ever taken off had Bell not made the early decision to distribute the code royalty-free to academic organisations.
So, open-source software has transformed the software industry and this transformation has been super- charged by low-cost, high-speed, reliable internet.
A great deal of open-source software is being used in commercial applications for which the author receives no royalty – simply because it is difficult to police. Yet overall, the system works and because so much today is based upon software, the open-source movement has been a primary driver in the acceleration of technological development. Downsides or not, it is here to stay.
Editor's Recommended Articles
Must Read >> Mathematics and computer science: Key to the future
Must Read >> Computing and mathematics: Forever entwined