Software (also known as software) is a program or set of programs used to control a computer (ISO/IEC 26514:2008).
There are other definitions from international standards:
a set of programs of the information processing system and program documents necessary for the operation of these programs;
all or part of the programs, procedures, rules and related documentation of the information processing system (ISO/IEC 2382-1:1993);
computer programs, procedures, and possibly related documentation and data relating to the operation of the computer system (IEEE Std 829–2008).
Software is one of the types of support for a computer system, along with technical (hardware), mathematical, informational, linguistic, organizational, methodological and legal support
The academic fields that study software are computer science and software engineering.
Computer slang often uses the word "software", derived from the English word "software", which in this sense was first used in an article in the journal American Mathematical Monthly by john Tukey, a mathematician from Princeton University in 1958.
Background: The Birth of Programming
The first program was written by Ada Lovelace for Charles Babbage's difference machine, but since this machine was never completed, Lady Lovelace's developments remained purely theoretical.
The first theory concerning software was proposed by the English mathematician Alan Turing in 1936 in the essay "On computable numbers with an application to the Entscheidungsproblem". He created the so-called Turing machine, a mathematical model of an abstract machine capable of performing sequences of rudimentary operations that move a machine from one fixed state to another. The main idea was a mathematical proof of the fact that any predetermined state of the system can always be achieved by sequential execution of a finite set of elementary instructions (program) from a fixed set of instructions.
The first electronic computers of the 1940s and 1950s were reprogrammed by switching toggle switches and reconnecting cables, which required a deep understanding of their internal structure. Such machines included enIAC (which, however, was later modified so that it could, at least partially, be programmed with punched cards)
An important step towards modern computers was the transition to the John von Neumann architecture, first embodied in the UK, in a computer developed under the leadership of J. R. Wamerzli and with the participation of Alan Turing, known as Mark I. . The first program stored in the computer's memory was run on it on June 21, 1941. To facilitate the programming of this machine, Turing came up with a shortened encoding system that used a sequence of teletype characters output to punched tape to represent binary machine code.
One of Turing's employees, John Mouchley, who later became (together with John Presper Eckert) the head and founder of the Eckert-Mauchly Computer Corporation, which developed such computers as BINAC and UNIVAC, instructed his employees to create a translator of algebraic formulas. Although this ambitious goal was not achieved in the 1940s, under Mochly's leadership, the so-called "Short Code" was developed, in which operations and variables were encoded in two-character combinations. The short code was implemented using an interpreter. Grace Hopper, working from the early 1950s on a set of mathematical subroutines for UNIVAC I, invented the "A-0" linker program, which, using a given identifier, selected the desired subprogram from the library stored on magnetic tape and wrote it to the designated place of RAM.
In the 1950s, the first high-level programming languages appeared, John Backus developed FORTRAN, and Grace Hopper developed COBOL. Such developments greatly simplified the writing of application software, which was then written by every company that acquired a computer.
In the early 1950s, the concept of software had not yet developed. This was not the case in a January 1952 Fortune magazine article, "Office Robots," which described Univac computers. Although the article already talks about the computer as a universal device, the programming process in this article was anachronistically described as "switching toggle switches". However, by the mid-50s, custom software development was already quite established, although the term "software" itself had not yet been used, then they simply talked about "programming to order" or "programmer service". The first software firm was the System Development Corporation, established in 1956 on the basis of the US government-owned firm RAND Corporation. At this stage, the customers of the software (unique and non-replicable) were large corporations and government agencies, and the cost of one million dollars per program was not unusual.
Early history: Enterprise software
The term "software" itself has been widely used since the early 1960s, when it became relevant to distinguish between the commands that control a computer and its physical components, hardware. At the same time, the formation of the software industry as an independent industry began. The first software company was founded in 1959 by Roy Nutt and Fletcher Jones Computer Sciences Corporation with an initial capital of $ 100. The first clients of CSC and the software companies that followed it were super-large corporations and government organizations like NASA, and the firm continued to operate in the custom software market, as did other early private programming startups such as the Computer Usage Company (CUC).
The first self-released software products not bundled with computer hardware were the AUTOFLOW computer document generator released by Applied Data Research in 1965, which automatically draws flowcharts, and the MARK-IV programming language translator developed in 1960–1967 at Informatics, Inc. The emergence of the enterprise software market is closely related to the emergence of the IBM System/360 family of computers. Fairly massive, relatively inexpensive computers, compatible with each other at the level of program code, opened the way to replicated software.
Gradually, the circle of software customers expanded, which stimulated the development of new types of software. This is how the first firms specializing in the development of computer-aided design systems appeared.
In November 1966, Business Week magazine addressed the topic of the software industry for the first time. The article was titled "Software Gap – A Growing Crisis for Computers" and talked about both the prospects of this business and the crisis associated with the shortage of programmers. Typical software products of the time were used to automate common business tasks, such as payroll or automate the business processes of medium-sized enterprises such as a manufacturing enterprise or a commercial bank. The cost of such software, as a rule, was between five and one hundred thousand dollars.
Personal computers and software for the mass consumer
The appearance in the 1970s of the first personal computers (such as the Altair 8800) created the prerequisites for the emergence of a mass software market. Initially, programs for personal computers were distributed in "boxed" form through shopping centers or by mail and had a price of 100-500 US dollars.
Landmark to the nascent mass-market software were products such as the VisiCalc spreadsheet, which was conceived by Daniel Bricklin when he, as an MIT graduate and software engineer at DEC, attended courses at Harvard Business School and wanted to ease his tedious financial calculations, and the WordStar word processor. [en], the development of which was started by Seymour Rubinstein, having carefully studied the needs of the market. VisiCalc was first talked about as a killer application, that is, a computer application that, by the very fact of its existence, proves the need (and, often, the need to purchase) the platform for which such a program is implemented. For VisiCalc and WordStar, such a platform was personal computers, which thanks to them from a rich toy for geeks became a working tool. With them, the microcomputer revolution began, and these programs had competitors: SuperCalc spreadsheets, Lotus 1-2-3, dBase II database management system, WordPerfect word processor, etc. Word processors, spreadsheets, database management systems, as well as graphic editors soon became the main products of the personal computer software market.
Mass replication made it possible to reduce the cost of software for personal computers to one hundred to five hundred dollars by the mid-1990s, while the business of software manufacturers acquired a certain similarity with the business of record companies.