Why do some programming languages fail and others succeed?
What does the answer tell us about programming language
design, implementation, and principles? To help answer
these and other questions, we argue for a sociologicallygrounded
programming language theory: socio-PLT.
Researchers in the social sciences have studied adoption
in many contexts.We show how their findings are applicable
to programming language design. For example, many programming
language features provide benefits that programmers
cannot directly or immediately observe and therefore
may not find compelling. From clean water to safe sex, the
health community has long examined how to surmount similar
observability barriers. We use such results from outside
of programming language theory to frame a research agenda
that should help us understand the social foundations of languages.
Finally, we examine implications of our approach,
such as for the design space of language features and the assessment of scientific research into programming languages.