3 ms·
Science? Click on link. Oh, they mean _computer_ science. In particular, empirical "software engineering" studies. That's not science at all. Computer science i
by akkartik 10y ago
Science? Click on link. Oh, they mean _computer_ science. In particular, empirical "software engineering" studies. That's not science at all. Computer science is not science, it's math + art + alchemy. And I strongly believe empirical "software engineering" studies fall under the alchemy category. (Which is why I can't stand to take those quotes out.)
Take this survey, for example. Any paper that purports to provide naming recommendations "scientifically" has to explain the Linux Kernel at least on a level footing with Eclipse or whatever other Java programs they're looking at. Otherwise it's hard to take them seriously.
In general, programming has just too many variables to be amenable to scientific analysis at this time.
a) Start with the question of how you define success. Are projects that have lots of adoption what we should be trying to emulate, even if the insides are ugly and the project just happened to be first to market, and its users don't care about how clean its code is?
b) Then there's the question of whether a study is reproducible using other codebases. Most such studies are not. The ones in OP demonstrably are not as I have hopefully proved above.
c) Software engineering studies are extremely weak at identifying or controlling for confounding variables. Most have no such discussion. The ones that have some mild discussion fail to put into context what variables they failed to account for, often the reader can come up with a new one with a few moments of thought. Given this, the conclusions they arrive at are overreaching, where good science has a tradition of modesty, of under-stating the applicability of one's conclusions.
Summary: science doesn't just happen when you want it to. A field becomes scientifically "rationalized" past a certain point in maturity, when a consensus emerges after many iterations of theory, experiment and argument between alternatives. It seems unjustifiable to say "science says" something if you can find opposing hypotheses about it in equivalent journal articles. Software engineering is early in this life cycle. I suspect it's hindered by bad axioms, such as that what we do with software today can be termed "engineering".