(i) What is ‘software’?
Source code vs. object code. Software is a somewhat imprecise word for ‘source code’ or ‘object code’. Typically, software is distributed in the form of ‘object code’, also called ‘binary code’: machine-readable algorithmic instructions in the form of bits and bytes. For example, object code could look like this:
€ù?w„ÉtX¶ÉD;Ærê¸ X €Ë €ûdt€útujŠP €Ê €úcu
Source code is a set of computer instructions written by software programmers in a particular programming language, with statements such as:
PrintDocument (file name, number of copies, which pages, colour, page resizing)
if X=50, then do Y, else go to Zx and do Zy
For your computer to understand these algorithmic instructions, the source code must first be compiled (i.e. converted) into object code. Whilst a computer cannot execute mere statements such as “if…, then…, else…”, human beings cannot understand object code.
Open source. Whilst software is subject to copyright and the source code is a trade secret, the software programmer could make it available to others under a so-called ‘open source licence’. This means that everyone would have access to and be entitled to use, change and redistribute the software. The rationale is that other developers are more willing to improve the open source software and that improvements are realised much quicker than the owner of proprietary software would be able to achieve. The initial software developer will benefit from being the most informed and best suited party to realise the wishes from the software users (and such development work is often paid).
Open source software is typically distributed under the terms and conditions of a defined standard. Some widely used standards include: (a) the GNU General Public License (GPL) or Lesser GPL (LGPL), (b) the Artistic License (e.g. Perl), (c) the Mozilla Public License, (d) the Common Public License, (e) the Sun Community Source License (SCSL), (f) the Sun Industry Standards Source License (SISSL), (g) the Sun Industry Standards License (SISL), and (h) the Open Software License.
These open source licence terms require, as a condition for use, modification or distribution of the software or other software incorporated into, derived from or distributed with such software (a Work): (i) the making available of source code or design information regarding the Work; (ii) the grant of permission for creating derivative works of the Work; or (iii) the grant of a royalty-free licence to any party under intellectual property rights regarding the Work.