The story of software pioneers is closely linked to the development of the first program-controlled machines (ZUSE Z3, MARK I, ENIAC, COLOSSUS) in the 1940s. Although the terms hardware and software were only coined and defined precisely in the 1950s, they can also be applied to the first computers.
Computer components such as the arithmetic and logic unit, memory and keyboard are referred to as hardware. Everything that has to do with controlling computers by means of instructions is known as software. Certain instructions (commands) are needed to trigger a function of the computer, e.g. adding, storing or transferring data. A sequence of instructions to the hardware, which triggers a specific action, is called a program.
The main problem of early computers - from today's point of view - was the inconvenience of programming them. Thousands of statements in the shape of complicated machine instructions had to be punched into tape. To reduce the effort and simplify maintenance, high-level programming languages were developed, which enabled people to communicate more "colloquially" with computers.
Konrad Zuse developed the Plankalkül programming language at an early stage between 1943 and 1945. The idea behind Plankalkül was a pioneering effort in computer programming as it included, among other things, concepts for handling problems relating to artificial intelligence, chess and list sorting.
There was a dramatic increase in programming languages after 1960. FORTRAN and COBOL, designed by John Backus and Grace Hopper, respectively, are examples of high-level programming languages which are still very widespread. A wide variety of programming languages was developed for various reasons: Users had different problems and situations to cope with, computer manufacturers had their eye on the market, and computer scientists were fond of experimenting. So far, more than 1,000 programming languages have been developed, most of which are tailored to specific problems. About 20 programming languages are used on a wide scale.