The most practically relevant finding of the original paper remains in effect: the choice of language has an effect of less than 1% on the bug rate[1]. The original paper explains: "With effects coding, each coefficient indicates the relative effect of the use of a particular language on the response as compared to the weighted mean of the dependent variable across all projects." So the entire discussion is on the re…
Two things this studies haven't measured are time to deliver features, and the number of developers necessary. For example, if a project in Haskell can be delivered faster by a smaller team than an equivalent project in C++, that would be an important factor.
On the Impact of Programming Languages on Code Quality
131–138 of 138 posts
Re: On the Impact of Programming Languages on Code Quality
#132Earlier quoted context omitted.
What is the type of person likely to be attracted to languages like Haskell or Clojure?
I can think of selection bias effects both in-favor of more defects and against it. On one hand, Haskell or Clojure probably attract more academic types who have a reputation for (consistent with my experience) on-average worse-quality code. On other hand, the barrier-to-entry for these languages is higher so they tend to be programmed by more experienced folks. I assume that people pick functional languages in part…
They went to school, they where not bashed in the head with hammers.
Re: On the Impact of Programming Languages on Code Quality
#133Earlier quoted context omitted.
Measuring quality of software products is not a social science. You have clear metrics on time it takes to develop something, number of people you need to develop it, numbers of defects per project, and so on. Once you have massive amounts of data, as we now have with repositories like GitHub, it becomes possible to look for trends across languages. I'm not saying there aren't challenges associated with measuring the…
> numbers of defects per project How do you measure that? You could look at the project's bug tracker, but the number of bugs in it will reflect a project's popularity more than anything else. You could look at commit messages, as the (original) paper does (see 2.2.1 / 2.2.2 in the reproduction paper), but the heuristic they use doesn't look very reliable to me; I've seen projects where every feature implementation h…
It's a numbers game, if we look at a lot of projects written in a lot of different languages, we'll see a sample of projects with different kinds of popularity. If there is a trend associated with a particular language that's an outlier that would be an indication that the particular language may play a role.
>And of course, all of that is data about known defects, and fixed (presumably) defects in the case of commits - how do you compare the number of unknown defects?
Again, it's about trends. If you look at thousands or millions of projects these things average out across them. You can even group projects into different categories based on their domain, popularity, and so on. The underlying idea is that you should be able to see measurable trends when looking at large numbers of projects across languages. If such trends are established, then we can dig deeper and make a hypothesis as to what might be the cause.
Re: On the Impact of Programming Languages on Code Quality
#134Earlier quoted context omitted.
Two things this studies haven't measured are time to deliver features, and the number of developers necessary. For example, if a project in Haskell can be delivered faster by a smaller team than an equivalent project in C++, that would be an important factor.
Important for what? They are trying to do a study, not declare a flame war.
Re: On the Impact of Programming Languages on Code Quality
#135Earlier quoted context omitted.
Important for what? They are trying to do a study, not declare a flame war.
It would be an important factor when choosing a language obviously. If language A allows you to deliver same kinds of projects as language B, but with less people that's valuable information for the business.
[the] association between eleven programming languages and software defects in projects hosted on GitHub.
Nothing more, nothing less.
If they wanted a "x is better than y for business", it would not be a serious study at all, just a bunch of journalistic edgy writing.
Re: On the Impact of Programming Languages on Code Quality
#136Earlier quoted context omitted.
It would be an important factor when choosing a language obviously. If language A allows you to deliver same kinds of projects as language B, but with less people that's valuable information for the business.
And that's not what they are trying to study: [the] association between eleven programming languages and software defects in projects hosted on GitHub. Nothing more, nothing less. If they wanted a "x is better than y for business", it would not be a serious study at all, just a bunch of journalistic edgy writing.
Re: On the Impact of Programming Languages on Code Quality
#137Earlier quoted context omitted.
Definitely. Heck, in .NET's early days, there was a distinct difference in quality of the software and of the team using VB.net vs C#, when they were 99% the same language (they had some features unique to each, but they were very few). But C# was used a lot in new projects or by people familiar with Java while VB.net was used in VB6 migrations or teams coming from VB6. That had a drastic effect on the end result, bu…
The VB shops I've seen code from tended to really like `On Error Resume Next`, too... Sure, I've seen global try/catch blocks swallowing all errors in C#/C++ code too, but definitely not as prevalent in my anecdata.
Re: On the Impact of Programming Languages on Code Quality
#138Earlier quoted context omitted.
I agree. Our framework, libraries, and/or interfaces can and should make a bigger difference than programming language. If you have to use the "weird parts" of a language to get typical work done, you are doing something wrong. And if you are not using the weird parts, then programming languages look and do pretty much the same thing. Braggings such as, "look! My language can do double recursive lambda backflips whil…
I think it really depends on how you use the “weird parts”. Some of those let you write code much more concisely and effectively. Used in the wrong context, it’s a unnecessary distraction. It also depends on if you want to write “typical code” or code that the competition can’t match. See Paul Graham’s essay on the Blub Paradox [0], which discusses why some languages seem to have “weird parts” from the perspective of…