a history of software engineering

niklaus wirth

software engineering is the construction of systems by large groups of people

the history of software is the history of growth in complexity

in the 1950s is when computers broke out of the closed guardianship of electrical engineers and programmers became needed

cobol was made by the US DoD for business applications

Programming was known to be a sophisticat ed task requiring devotion and scrutiny, and a love for obscure codes and tricks.

That’s why we created programming languages

PL/I was invented to unite scientfic and business communities, under the motto “Everybody can program, thanks to PL/I” (1964)

in 1968 the term software engineering appeared at a conference organized by NATO in Garmisch-Partenkirschen

in academia, it was Djikstra and Hoare who said that it was tricky, and it should be formalized, and in his [[Dijkstra_Notes_Structured_Programming.pdf]] djikstra says that it should be considered a discipline and not a craft. and Hoare published an important paper on data structuring. for another perspective on programming as craft in the 1960s, see A critical review of the state of programming art (COBOL as a “narrative-style” language written in “pidgin English’”)

so they (DoD) started Ada.

meanwhile, unix and c. the problem he sees is that this was called a “high-level” programming language, but wasn’t one cause it is so close to the metal

computers are machines of incredible complexity, which can be mastered by one tool only: abstraction

The trouble was that its rules could easily be broken, exactly what many programmers cherished. […] an invitation to use tricks that were necessary in the early days of computing, but now made systems error-prone and hard to maintain.

The propagation of software engineering then appeared in schools and homes, via micro-computers

he argues computing went public with those cheap chips (e.g. Commodore) and cheap compiles (e.g. the P-code Pascal compiler by Ken Bowles).

The craft of programming turned to hacking (insert the moment when microsoft and apple showed up)

there was some mathematical formalization of computer programs (provability, by Floyd, and Hoare logic). but these developments went unnoticed outside of academia (i.e. the business and home sectors). cause the problems of these sectors were way too big

in 1972, liskov invented modules (as in import a.js) such that you only need to know the interface.

in 1975, the Alto pioneered fast, interactive workstations. programming has never been the same since then.

then networked technologies became connected to the computer, and in 1990s something called Open Source appeared