Writing a program is the cheap part; keeping it alive costs far more
Over the whole life of a software product, maintenance is estimated to swallow 75 percent or more of the total cost. Fixing bugs discovered after release, adapting to new hardware and bolting on features goes on for years, and some legacy programs keep running for decades after everyone who understood them has gone.
Bugs are close to universal. Despite reviews by other engineers and automated tests, practically every program ships with faults, partly because testing can never cover everything and teams concentrate on the most critical functions. Products often go out unfinished when time or money runs short. Because buyers accept this knowingly, the law limits liability for software far more than for most goods. Poor quality has a price, though; by some estimates it can reach 20 to 40 percent of sales, and in safety-critical systems failures can injure or kill.
Bugs that open security holes are called vulnerabilities. Patches close known ones, but unknown flaws, the so-called zero days, and unpatched systems remain open to attack, and some let intruders slip in their own code, or malware, unnoticed. The internet made this far worse by letting attackers strike from anywhere.
The word itself is younger than computers. The mathematician John Tukey is credited with first using software for programs in 1958, the same year high-level programming languages appeared. Before that, the first programmable machines of the late 1940s were coded directly in machine language, hard to debug and tied to one model. Languages such as Fortran, Lisp and COBOL hid the hardware, and compilers were invented alongside them to translate code into machine instructions. Interpreted languages, translated while running, can be 10 to 100 times slower.
How software is sold has shifted too. Buyers once paid for a perpetual licence to one version and ran it themselves; by 2023 software delivered as a hosted subscription service had become the main way companies supplied applications. Since the mid-1970s code has been protected by copyright, though the underlying algorithms are not.
Source: Software