The future of programming
- 1 March 1982
- journal article
- Published by Association for Computing Machinery (ACM) in Communications of the ACM
- Vol. 25 (3) , 196-206
- https://doi.org/10.1145/358453.358459
Abstract
The nature of programming is changing. These changes will accelerate as improved software development practices and more sophisticated development tools and environments are produced. This paper surveys the most likely changes in the programming task and in the nature of software over the short term, the medium term, and the long term. In the short term, the focus is on gains in programmer productivity through improved tools and integrated development environments. In the medium term, programmers will be able to take advantage of libraries of software components and to make use of packages that generate programs automatically for certain kinds of common systems. Over the longer term, the nature of programming will change even more significantly as programmers become able to describe desired functions in a nonprocedural way, perhaps through a set of rules or formal specification languages. As these changes occur, the job of the application programmer will become increasingly analysis-oriented and software developers will be able to attack a large number of application areas which could not previously be addressed effectively.Keywords
This publication has 21 references indexed in Scilit:
- The keystroke-level model for user performance time with interactive systemsCommunications of the ACM, 1980
- Information system design methodologyJournal of the American Society for Information Science, 1980
- The Oregon Report Software Engineering: The Turning PointComputer, 1978
- UNIX Time-Sharing System: Language Development ToolsBell System Technical Journal, 1978
- Report on the programming language EuclidACM SIGPLAN Notices, 1977
- SEQUEL 2: A Unified Approach to Data Definition, Manipulation, and ControlIBM Journal of Research and Development, 1976
- Programming-in-the-Large Versus Programming-in-the-SmallIEEE Transactions on Software Engineering, 1976
- Language design for programming reliabilityIEEE Transactions on Software Engineering, 1975
- Inference and the computer understanding of natural languageArtificial Intelligence, 1975
- The programming language pascalActa Informatica, 1971