4 ms·
Was ok up until type systems. Please stop citing this pathetic "empirical study" already, it's totally unscientific.
by sklogic 10y ago
Was ok up until type systems. Please stop citing this pathetic "empirical study" already, it's totally unscientific.
- lolc 10y agoIf that one is not, are there any scientific studies then? Strongly typed languages require of me to do more work upfront, to satisfy their type checker. They must necessarily reject programs that would work correctly. In this process a lot of mistakes are eliminated, and this gives me more confidence that the result will work. I like that way of working. But does it produce more robust code? Is it more productive? It feels like it, but that doesn't mean it's true.
- sklogic 10y agoGiven a huge skill gap and inability to factor out methodology differences, I cannot see how such a study can be done at all. Anecdotes are the best we have. Far better than a pseudoscience with agenda.
- lolc 10y agoScience can be analyzed for how pseudo it is, anecdotes cannot.
- sklogic 10y agoAnecdotes are case studies. In social sciences, for example, it's often the only thing you have. Do not dismiss this kind of evidence when you do not have any other options.
- lolc 10y agoNot all anecdotes are case studies, but all case studies are anecdotal evidence. The effect of type systems is probably not that big. Otherwise the proponents of type systems would have had an easy time proving it.
- marcosdumay 10y agoThere's an interesting one here: http://macbeth.cs.ucdavis.edu/lang_study.pdf http://macbeth.cs.ucdavis.edu/lang_study.pdf TL.DR. Looks like FP reduces bugs, and static typed FP reduces them a bit more, but there isn't enough data for the more interesting fine-granied conclusions. Also Perl results are interesting (unsettling?).
- lolc 10y agoInteresting, thanks.
- pklausler 10y ago"Strongly typed" is not the same thing as "statically typed". Most dynamically typed languages are strongly typed, too. The distinction between static and dynamic type systems comes from whether type errors are caught at compilation time or run time. Which basically settles the question for me as a programmer, anyway. Eliminating the possibility of a class of run time failures -- how can that not be a good thing?
- lolc 10y agoI meant statically typed, thanks. The question to me is not whether type checkers are useful tools, but at what point they become a hindrance. If I may rephrase your question: The programs rejected by the type checker, how can they not be bad programs?