Onward! Essays 3
Research in the area of programming languages has different facets — from formal reasoning about new programming language constructs (such as type soundness proofs for new type systems) over inventions of new abstractions, up to performance measurements of virtual machines. A closer look into the underlying research methods reveals a distressing characteristic of programming language research: developers, which are the main audience for new language constructs, are hardly considered in the research process. As a consequence, it is simply not possible to state whether an artifact that requires some kind of interaction with the developer has any positive impact on the construction of software. This paper argues for the urgent need for empirical methods in programming language research that rely on studies of developers — and argues that the introduction of empirical methods not only requires a new understanding of research but also a different view on how to educate computer science students.
Fred Brooks' retelling of the biblical story of the Tower of Babel offers many insights into what makes building software difficult. The difficulty, according to common interpretations, comes from the communication and organizational problems in software development. But the story contains one more important lesson that people tend to miss: one cannot accomplish impossible goals, which programmers are often asked to do. Software engineering, as a discipline, can overcome poor communication; but if we attempt to live up to impossible expectations, we will always fail.




