Fortran was born because John Backus hated writing programs
John Backus admitted that much of his work came from laziness. Tired of hand-coding missile trajectory programs at IBM, he proposed in late 1953 a way to type formulas instead of machine instructions. The result, Fortran, is still running weather forecasts and ranking the world's fastest supercomputers seven decades later.
Backus's team at IBM finished a draft specification for its Mathematical Formula Translating System by November 1954. The first manual followed in October 1956 and the first compiler in April 1957, built for the IBM 704 mainframe. Crucially, it produced code efficient enough that assembly programmers were willing to give up hand-tuning, which had been the big doubt about high-level languages. Others were chasing similar ideas at the time, including Grace Hopper with the A-0 System for the UNIVAC I.
Adoption was fast. By 1963 more than 40 compilers existed across rival manufacturers, and over 220,000 manuals had been handed out. The compiler itself was so complex that IBM used it to test newly built computers. It even ran a Monte Carlo simulation of the program at compile time, using optional hints about how often each branch would be taken to decide where to place code in memory, a remarkable optimisation for the era. One version for the small IBM 1401 squeezed through 63 phases inside just 8000 characters of memory.
Early programs lived on 80-column punched cards, one line per card. A C in the first column marked a comment, columns one to five held labels, and columns 73 to 80 were ignored because the 704's reader saw only 72, so programmers punched sequence numbers there to re-sort a dropped deck. The original language offered 32 statement types, including a three-way IF that jumped depending on whether a value was negative, zero or positive.
A 1966 ANSI standard curbed clashing dialects. Later versions added structured programming in Fortran 77, array and modular features in Fortran 90, which also dropped the all-capitals name, and object orientation in Fortran 2003.
Source: Fortran