Why do some programming languages succeed and others fail? We have been tackling this basic question in two ways.
First, I will discuss theories from the social sciences about the adoption process and what that means for designing new languages. For example, the Haskell and type systems communities may be suffering some of the same challenges that the public health community did for safe sex advocacy in the early nineties. Second, informed by these studies, we gathered and quantitatively analyzed several large datasets, including over 200,000 SourceForge projects and multiple surveys of 1,000-13,000 programmers. We find that social factors usually outweigh intrinsic technical ones. In fact, the larger the organization, the more important social factors become. I’ll report on additional surprises about the popularity, perception, and learning of programming languages. Taken together, our results help explain the process by which languages become adopted or not.