More Common Than You Think: An In-Depth Study of Casual Contributors [pdf]
gustavopinto.org
gustavopinto.org
As a primary maintainer on some libraries and a casual contributer on others, I'm not surprised at all to see that 48% of all contributions are from the non-principle developers.
I was surprised to see that C and C++ are so low in terms of outside contributions compared to many other languages. I don't believe this is due to the number of programmers using the language, so it begs the question as to why these languages are arguably less accessible.
I don't believe C/cpp are more syntactically difficult.
If I had to hazard a guess, it would be that C/C++ code are more often specialized libraries that require system level access, and so don't attract as much of a broad interest.
I think it just rehashes the idea that OSS projects are easier to grow if they are are small and in popular languages.
I've seen a project structured non-ideally for the technical task, but that enabled users to quickly find and understand the part of the project that would fix their problem.
It ended up being like the pyramids, constructed with thousands of labourers. But very successful - effective and popular.
So perhaps ideal contributor structuring is more important than ideal technical structuring...
"Our results showed that although casual contributors are rather common (48.98% of the whole population of contributors in the projects analyzed), they are responsible for only 1.73% of the total number of commits."
It might be a low percentage, but maybe it's the areas where portability and conformance with other libraries are important. The stuff that a core maintainer is less interested in identifying and fixing, because they are already using the library for their particular use case.
I cannot count the number of time I've found a bug simple enough that I know the fix is easy but got lost in the mire of a poorly-documented C/C++ (but I repeat myself...) codebase before deciding it's not worth my time.
Higher level languages are on the whole more approachable even with inadequate documentation, as if there's any other type, and even if I've never met the language before.
What i find most difficult about programming is not the basic syntax, but trying to get a useful overview of the libraries available.
• https://github.com/sorrycc/awesome-javascript
In a more expressive language it's easier to get to the "this is how the original developer would have written it".
The analysis also excludes all contributions not in the form of commits. Of course including non-commit contributions is hard.
One minor nit: C is characterized as "strongly typed".