Why do software developers love their programming language?

An interview-based exploratory study aiming to understand the landscape of language likes and dislikes better.

Bachelor thesis done 2018 by Lukas Hoffmann, advised by Lutz Prechelt.

1. Introduction

Although language zealotry has maybe become a little less pronounced in the past few years, we still perceive most professional software developers to like some language(s) much more than others.

Why is this so?
Are there recurring elements in those reasons?
Which of those are (apparently) rational, which are emotional?
How rigid (or flexible) do these attitudes appear to be?

Answers to these questions might be helpful in many ways in some circumstances:

2. Approach

We rely mostly on interviews, because this appears to be the only feasible approach for a Bachelor thesis: Direct observation would be too time-consuming; relying on existing materials (bug trackers, blogs etc.) does not allow to tailor the data to the question.

We may ask respondents to show us specific code examples of the phenomena they discuss. The examples -- or a respondent's difficulty in finding them -- may be helpful to understand the interview statements better or may serve as additional evidence.

3. Design considerations

3.1. Respondent selection

We are interested in developers in professional contexts only, but will consider a broad range of experience levels, from still-students to twenty-plus year old-timers. We will require respondents to have substantial experience with at least two languages, called primary and secondary; see below.

3.2. Language selection

In order to get concrete answers (rather than abstract ramblings), we will mostly ask about specific languages, not languages in general. We ask each respondent to talk about and compare two languages: Important: We are not interested in language dislikes that lack an underpinning of substantial personal experience with that language. Respondents should really know what they are talking about when they compare languages.

In order to avoid over-fragmentation of our data, we will limit the set of primary languages to a handful of mainstream languages the interviewer has at least modest knowledge about: This set in particular includes: at least one statically typed and one dynamically typed language, at least one language that may be perceived as young, chic, progressive, buzzing and one with a presumably more old, dusty, legacy feel.

Ideally, the secondary language comes from the same set. If that is too difficult, we will accept other secondary languages as well. When we do so, the following interesting secondary languages are preferred:

These mostly represent more new, shiny languages and more old mainstream languages.

We do not consider HTML, XML, CSS, or similar things to be programming languages and would rather not consider Unix Shell (sh, bash, or other) a programming language.

3.3. Research method

We will use Grounded Theory Methodology (GTM) for this work. This means in particular:

4. Interview questions

4.1. Respondent background

4.2. …

4.3. …


Work plan and progress

(one entry per calendar week, possibly with subentries, containing the current plan (frozen once the week starts) and work/result report (for past weeks))