The Future of Programming

usefulAnthony I. Wasserman; Steven Gutzpaper1982-03read software engineeringhistoryai llms

Synopsis — AI-drafted from Dan's notes

Wasserman (UC San Francisco) and Gutz (Digital Equipment Corporation) start from a cost problem. Software had become most of the cost of a computer system, programmers were scarce and expensive (they expected one to cost over $100,000 a year, with overhead, by the mid-1980s), and maintenance kept adding to the bill. So the job itself would have to change. They split the forecast into three horizons and say up front that it is speculation: no data could support it yet.

The short term (to about 1986) is better tools. They want small, single-purpose tools that combine well (the Unix pipe is their model), integrated environments that cover the whole life cycle and not only coding, debuggers tied to the source, and quick prototypes so users can react to a working system before the specification is fixed.

The medium term (to 2000) is industrial. Software becomes a mass-market product sold off the shelf, and systems get assembled from tested, documented components, the way hardware is built from standard circuits. Each developer gets a personal workstation (about 1 MB of memory and a 40 MB disk, for $10K–$20K). Common kinds of program get generated from design schemas.

The long term (the early 21st century) is where the job changes. End users handle routine requests themselves through query languages and report generators. Programmers describe what a program should do through a formal specification or a set of rules, and the system works out how. The application programmer becomes an analyst, closer to the users and the problem than to the machine. They set natural language aside as a programming language, because it is verbose and ambiguous, and expected programmers to keep writing artificial languages “for quite some time”.

Where I land

I remember in university, my operating systems professor once said a joke about how to leverage computer science principles to advance capabilities “with computers you want to get high, not by smoking dope but through abstraction”. This paper is almost foreshadowing of AI and spec driven development. A lot of people are claiming coding is dead. Its mode might be. We don’t use punch cards anymore. But software development is still very much alive, it merely has changed.

Connections