Myths and Mythconceptions: What does it mean to be a programming language, anyhow?
Modern software is embedded in sociotechnical and physical systems. It relies on computational support from interdependent subsystems as well as non-code resources such as data, communications, sensors, and interactions with humans. General-purpose programming languages and mainstream programming language research both focus on symbolic notations with well-defined semantics that are used by professionals to create correct solutions to precisely-specified problems. However, these address only a modest portion of this modern software.
Persistent myths reinforce this focus. These myths provide a lens for examining modern software: Highly-trained professionals are outnumbered by vernacular developers; writing new code is dominated by composition of ill-specified software and non-software components; general-purpose languages and functional correctness are often less appropriate than domain-specific languages and fitness for task; and reasoning about software is challenged by uncertainty and non-determinism in the execution environment, especially with the advent of systems that rely on machine learning. The lens of our persistent myths illuminates emerging opportunities and challenges for programming language research.
An essay elaborating these ideas appears in the proceedings of the Fourth ACM SIGPLAN History of Programming Languages Conference (open access, https://doi.org/10.1145/3480947).
Mary Shaw is the Alan J. Perlis University Professor of Computer Science at Carnegie Mellon University. Her research interests lie in the area of software engineering, particularly software architecture and design of systems used by real people. Her past contributions to an engineering discipline for software have included data abstraction with verification, influential curricula and textbooks, and helping to found the Software Engineering Institute at Carnegie Mellon.
She has received the United States’ National Medal of Technology and Innovation, the ACM SIGSOFT Outstanding Research Award (with David Garlan), the IEEE Computer Society TCSE’s Distinguished Educator and Distinguished Women in Software Engineering Awards, CSEE&T’s Nancy Mead Award for Excellence in Software Engineering Education, and the George R. Stibitz Computer and Communications Pioneer Award. She is a fellow of the ACM, the IEEE, and the AAAS