Computer software, or just
software, is the collection of
computer programs and related
data that provide the instructions telling a
computer what to do. We can also say software refers to one or more computer programs and data held in the storage of the computer for some purposes. Program
software performs the
function of the
program it implements, either by directly providing
instructions to the computer hardware or by serving as input to another piece of software. The
term was coined to contrast to the old term
hardware (meaning physical devices). In contrast to hardware, software is intangible, meaning it "cannot be touched".
[1] Software is also sometimes used in a more narrow sense, meaning
application software only. Sometimes the term includes data that has not traditionally been associated with computers, such as film, tapes, and records.
[2]
Examples of computer software include:
- Application software includes end-user applications of computers such as word processors or video games, and ERP software for groups of users.
- Middleware controls and co-ordinates distributed systems.
- Programming languages define the syntax and semantics of computer programs. For example, many mature banking applications were written in the COBOL language, originally invented in 1959. Newer applications are often written in more modern programming languages.
- System software includes operating systems, which govern computing resources. Today[when?] large[quantify] applications running on remote machines such as Websites are considered[by whom?] to be system software, because[citation needed] the end-user interface is generally through a graphical user interface, such as a web browser.
- Testware is software for testing hardware or a software package.
- Firmware is low-level software often stored on electrically programmable memory devices. Firmware is given its name because it is treated like hardware and run ("executed") by other software programs.
- Shrinkware is the older name given to consumer-purchased software, because it was often sold in retail stores in a shrink-wrapped box.
- Device drivers control parts of computers such as disk drives, printers, CD drives, or computer monitors.
- Programming tools help conduct computing tasks in any category listed above. For programmers, these could be tools for debugging or reverse engineering older legacy systems in order to check source code compatibility.
History
The first theory about software was proposed by
Alan Turing in his 1935 essay
Computable numbers with an application to the Entscheidungsproblem (Decision problem).
[3] The term "software" was first used in print by
John W. Tukey in 1958
[citation needed]. Colloquially, the term is often used to mean application software. In computer science and
software engineering, software is all
information processed by
computer system, programs and
data.
[4] The academic fields studying software are
computer science and
software engineering.
The history of computer software is most often traced back to the first
software bug in 1946
[citation needed]. As more and more programs enter the realm of firmware, and the hardware itself becomes smaller, cheaper and faster as predicted by
Moore's law, elements of computing first considered to be software, join the ranks of hardware. Most hardware companies today have more software programmers on the payroll than hardware designers
[citation needed], since software tools have automated many tasks of
Printed circuit board engineers. Just like the
Auto industry, the
Software industry has grown from a few visionaries operating out of their garage with
prototypes.
Steve Jobs and
Bill Gates were the
Henry Ford and
Louis Chevrolet of their times
[citation needed], who capitalized on ideas already commonly known before they started in the business. In the case of
Software development, this moment is generally agreed to be the publication in the 1980s of the specifications for the
IBM Personal Computer published by
IBM employee
Philip Don Estridge. Today his move would be seen as a type of
crowd-sourcing.
Until that time, software was
bundled with the hardware by
Original equipment manufacturers (OEMs) such as
Data General,
Digital Equipment and IBM
[citation needed]. When a customer bought a
minicomputer, at that time the smallest computer on the market, the computer did not come with
Pre-installed software, but needed to be installed by engineers employed by the OEM. Computer hardware companies not only bundled their software, they also placed demands on the location of the hardware in a refrigerated space called a
computer room. Most companies had their software on the books for 0 dollars, unable to claim it as an asset (this is similar to financing of popular music in those days). When Data General introduced the
Data General Nova, a company called Digidyne wanted to use its
RDOS operating system on its own
hardware clone. Data General refused to
license their software (which was hard to do, since it was on the books as a free asset), and claimed their "bundling rights". The
Supreme Court set a precedent called Digidyne v. Data General in 1985. The Supreme Court let a 9th circuit decision stand, and Data General was eventually forced into licensing the Operating System software because it was ruled that restricting the license to only DG hardware was an illegal
tying arrangement.
[5] Soon after, IBM 'published' its
DOS source for free, and
Microsoft was born. Unable to sustain the loss from lawyer's fees, Data General ended up being taken over by
EMC Corporation. The Supreme Court decision made it possible to value software, and also purchase
Software patents. The move by IBM was almost a protest at the time. Few in the industry believed that anyone would profit from it other than IBM (through free publicity). Microsoft and
Apple were able to thus cash in on 'soft' products. It is hard to imagine today that people once felt that software was worthless without a machine. There are many successful companies today that sell only software products, though there are still many common software licensing problems due to the complexity of designs and poor documentation, leading to
patent trolls.
With open software specifications and the possibility of software licensing, new opportunities arose for software tools that then became the
de facto standard, such as DOS for operating systems, but also various proprietary word processing and
spreadsheet programs. In a similar growth pattern, proprietary development methods became standard
Software development methodology.
source: http://en.wikipedia.org/wiki/Computer_software