Myths and mythconceptions: What does it mean to be a programming language, anyhow?

被引:9
作者
Shaw M. [1 ]
机构
[1] Carnegie Mellon University, United States
关键词
closed software system; domain-specific programming language; exploratory programming; fitness to task; formal specifications; general-purpose programming language; generality-power tradeoffs; open resource coalition; problem-setting design; problem-solving design; software credentials; sufficient correctness; vernacular software developer;
D O I
10.1145/3480947
中图分类号
学科分类号
摘要
Modern software does not stand alone; it is embedded in complex physical and sociotechnical systems. It relies on computational support from interdependent subsystems as well as non-code resources such as data, communications, sensors, and interactions with humans. Both general-purpose programming languages and mainstream programming language research focus on symbolic notations with well-defined abstractions that are intended for use by professionals to write programs that solve precisely specified problems. There is a strong emphasis on correctness of the resulting programs, preferably by formal reasoning. However, these languages, despite their careful design and formal foundations, address only a modest portion of modern software and only a minority of software developers. Several persistent myths reinforce this focus. These myths express an idealized model of software and software development. They provide a lens for examining modern software and software development practice: 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 may be less appropriate for a task than domain-specific languages, and functional correctness is often a less appropriate goal than overall fitness for task. Support for programming to meet a specification is of little help to people who are programming in order to understand their problems. Reasoning about software is challenged by uncertainty and nondeterminism in the execution environment and by the increasingly dominant role of data, especially with the advent of systems that rely on machine learning. The lens of our persistent myths illuminates the dissonance between our idealized view of software development and common practice, which enables us to identify emerging opportunities and challenges for programming language research. © 2022 Owner/Author.
引用
收藏
相关论文
共 66 条
[1]  
Abelson H., Jay Sussman G., Structure and Interpretation of Computer Programs, Second Edition, (1996)
[2]  
Creating Actions. Photoshop Documentation for Recording Actions
[3]  
Overview: What IsAutoCAD?, (2021)
[4]  
Bell S.K., Delbanco T., Elmore J.G., Fitzgerald P.S., Fossa A., Harcourt K., Leveille S.G., Payne T.H., Stametz R.A., Walker J., DesRoches C.M, 2020. Frequency and Types of Patient-Reported Errors in Electronic Health Record Ambulatory Care Notes, Jama Network Open, 3, 6, (2020)
[5]  
Bhandari J., Neupane R.P., Luo Y., Yoshida W.Y., Sun R., Williams P.G., 2019. Characterization of Leptazolines A-D Polar Oxazolines from the Cyanobacterium Leptolyngbya sp. Reveals a Glitch with the "willoughby-Hoye, Scripts for Calculating Nmr Chemical Shifts. Organic Letters 2019, 21, 20, pp. 8449-8453
[6]  
Bouhuijs J., Gartner: Citizen Developers Strengthen Impact of It, (2019)
[7]  
Frederick P.B., Design of Design: Essays from a Computer Scientist, (2010)
[8]  
Burnett M.M., Myers B.A, 2014. Future of end-user software engineering: Beyond the silos. in, Future of Software Engineering Proceedings (FOSE 2014), pp. 201-211
[9]  
DeRemer F., Kron H., Programming-in-The large versus programming-in-The-small, Proceedings of the International Conference on Reliable Software, pp. 114-121, (1975)
[10]  
Du Vander A., 2010 5 Years Ago Today the Web Mashup Was Born