Before we talk about the possibility of patenting software, we need to know what we mean by 'software'. The word 'software' is often used to mean music, video or other content which is made available for purchase or use, as opposed to computer software. However, I am referring to 'computer software' in the sense of a computer program, as referred to in South African patent and copyright legislation. The boundaries between the two types of 'software' are easy to blur, due to the fact that media (such as music or streaming video) is most commonly provided in the form of digital files having some characteristics in common with computer software, and may be played on computers or other software-based devices.
1.1 Some Definitions: What Is Computer Software?
Wikipedia defines a computer program rather concisely as 'instructions for a computer' and refers to two main functional categories of software, being system software and application software. System software includes the operating system which couples the computer's hardware with the application software, while application software includes utility programs that help users solve application problems, and includes word processors, spreadsheets, web browsers and many others.
Other concise definitions for a computer program are 'a sequence of instructions that a computer can interpret and execute' , or 'an organised list of instructions that, when executed, causes the computer to behave in a predetermined manner' .
Without getting too technical, the following major categories of computer software are recognised:
* Machine language/object code that controls hardware
* System software--typically operating systems such as MS Windows, Linux, UNIX, Apple's Mac OS, etc.
* Application software--for example, word processors, web browsers, e-mail programs, spreadsheets, media players, databases, games, etc.
Application software, which is what most people think of first when the word 'software' is mentioned, is commonly written using advanced programming software tools which ease the task of converting a desired function into code. High level human-readable code, whether produced in this way or written directly in a programming language, is known as source code and can be analysed by software programmers to understand the techniques used in the software. The source code must be compiled (converted to machine code) or interpreted to be run on a computer.
1.2 The Piracy Problem
As a generalization, if complex software is distributed without access to its source code, it is difficult to decompile it into a human readable form in which it can be analysed and understood. However, it can still be copied in many cases, or reverse-engineered. If the source code is available, it is easier still for a third party to reverse engineer the software. Various technical measures can be taken to restrict or prevent copying and unauthorised use of computer software, but such measures have proved insufficient or ineffective in practice and it has been estimated by the Business Software Alliance (BSA) that over a third of all packaged software installed on PCs worldwide in 2005 was pirated, leading to a total loss of $34 billion to software manufacturers . This figure is based on the retail value of unauthorised software in use, and is disputed on various grounds, including the likelihood that many people using unauthorised software would not use it if they had to pay for it. One view is that a more realistic figure would be one-tenth of the above amount, which is still around $3.4 billion (or R25 billion).
According to BSA, South Africa's average software piracy rate decreased by one percent in 2006, but that still represents at least R1. …