Maybe Your Next Programming Language Shouldn't Be a Programming Language

Author: Mary Shaw

Scaling Up: A Research Agenda for Software Engineering, National Academy Press, pp. 75-82, 1989.


Software needs now strain the design limits of traditional programming languages. Modern application needs are not satisfied by traditional programming languages, which evolved in response to systems programming needs. Current programming language research focuses on incremental improvements, not on major changes to the nature of software development. But major breakthroughs are needed in two areas: Non-programmers dominate modern computer use. Low computing costs have enabled a wide spectrum of application, and end users who are not programmers need to control their own computations. Order-of-magnitude increases in service require substantial shifts of technology. Computer users are interested in results, not in programming; software must reflect this. Requirements for large complex software systems exceed our production ability. Growth of demand is greater than growth in capacity, and system requirements exceed the scope of conventional languages. Software lacks a true engineering base. Language concepts can support a design level above the algorithm/data structure level and contribute to an engineering discipline. Programming language designers must look beyond the traditional systems programming domain and tackle problems of special-purpose software and system-level software design.

Brought to you by the Composable Software Systems Research Group in the School of Computer Science at Carnegie Mellon University.

[Last modified 12-Feb-1999.
Mail suggestions to the