The Rational Programmer, A Method for Investigating Programming Language Pragmatics
The work of software developers directly depends on decisions that language creators make for them. Therefore, when language creators choose from a number of design alternatives, they should consider how their choices affect the developers. Specifically, language creators should consider the use of a language feature in particular work contexts, an idea analogous to what linguists call “pragmatics”. However, so far, there are only a few instruments for investigating Programming Language (PL) pragmatics.
To address this gap, I have developed a new research instrument called the Rational Programmer. At the technical level, the Rational Programmer method puts the idea of simulation, a technique with a long history in Computer Science, to new use in PL research. The heart of a rational-programmer simulation is an algorithmic abstraction of using a language feature for information gathering, interpretation and action in a work context. Typically, a rational-programmer simulation produces a recommendation for a use strategy that a developer can employ. It may also identify a problematic aspect of a feature’s design with concrete evidence, which then the creators and developers can leverage to address the problem. Finally, a rational-programmer simulation can inform instructors how to teach students the effective use of a feature. In this talk, I will demonstrate the workings of the Rational Programmer method with examples.