Socio-PLT: Principles for Programming Language Adoption

Why does one programming language fail and another succeed? What does this tell us about programming language design, implementation, and principles? To help answer these and other questions, we argue for examining the sociological basis of programming language theory: socio-PLT.

This paper presents a survey for programming language adoption principles drawn from various sociological fields. For example, many programming language features provide benefits that programmers cannot directly and 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 discuss how principles and techniques drawn from social sciences such as economics, public health, and historical linguistics relate to programming languages. Finally, we examine implications of our approach, such as for the design space of language features and even the expectations of scientific research into programming languages.

Revision History

  1. 04.03.12 (Missing 3.5, raw 4/5)
  2. 04.04.12 Added S4.3 (features that exploit adoption)
  3. 04.06.12 Added discussion of empirical concurrency research.
  4. 04.06.12b Added community definition of lang semantics as example.
  5. 04.08.12 Cleaned 1-3 and 4.3 (including comments by PG).
  6. 04.08.12b Renamed some hypotheses as questions.
  7. 04.09.12 Cleaning 4, 5 and bib.
  8. 04.12.12 Trimming, cleaning flow, fixing OO discussion.
  9. 04.13.12 Cleaning conclusion and more RW