3 ms·
A related hypothesis is that it might be tied more closely to a language's packaging system than expressiveness. I've noticed in some of the projects I'm involv
by mjn 14y ago
A related hypothesis is that it might be tied more closely to a language's packaging system than expressiveness. I've noticed in some of the projects I'm involved in that commits are often related to packages, with people more likely to roll multiple things into one commit if they're to the same file or package, and more likely to split them if they're updates to things that the language itself splits. Might be cultural, or might be related to it being easier to modularize your own contributions when the language has defined module boundaries to help you out. So languages that favor more small packages may (though I have no evidence!) see smaller average commit size than those which favor fewer, more monolithic packages (or source files).
It's an interesting metric in any case, I'd just prefer not editorializing it. That's a common concern I have with supposed proxy variables, unless their proxyness has already been established through some kind of scientifically solid investigation. A ranking of languages by average commit size would be truth-in-advertising, and then it could be followed by a speculative blurb about what that means, with language expressiveness being one hypothesis. I think that'd still be perfectly interesting as something to do and discuss, but maybe it'd have a harder time getting traction.
Comes up in published scientific literature fairly often as well, unfortunately. E.g. it's common for neuroscience papers to be solid scientific investigations of a specific variable, but to then completely oversell the results by labeling it as a proxy measure for something more evocative, like "creativity" or "free will" or "empathy", with a really handwavy argument for why this specific variable is a suitable proxy for that full concept. It's also getting common in the past 1-2 years for people to claim trends in Google Ngram type data are proxies for historical popularity of concepts, when there are a lot of confounding reasons that might not be true.