Live data from Hacker News

Study of 49 programmers: static type system had no effect on development time

cs.washington.edu

81–90 of 192 posts

Re: Study of 49 programmers: static type system had no effect on development time

#81

I've wondered about languages that are "hybrid" in the sense that the type system can be turned on and off, because from an intuitive sense, whether the language is meant to be used as a dynamic language has an impact on its design, similarly with a static language. You take Smalltalk for example, as it is the original archetype of a language that benefit from blurring the lines of the type system. A language like Ha…

The change in GHC is just to make development easier. Basically, just imagine that instead of stopping at a type error, the compiler replaces the incorrect function with code to throw an error at runtime. So here the poorly typed function always errors, no matter what you pass it; in a dynamically typed language, it would work as long as the arguments passed at runtime have the correct types.

So it isn't anything like dynamic typing, or even quite like making type errors warnings--it's just a way to compile partially incorrect code to make changing the code incrementally easier. It's also not designed to be used in production.

It just automates the existing practice of temporarily commenting out offending functions and replacing them with `undefined' to get the whole file to compile.

Re: Study of 49 programmers: static type system had no effect on development time

#82

The study may or may not be flawed, but what's really interesting to me is the reaction. We need more science in our computer science, which means more experiments and more results like this. We should also be open to the truth that we use the tools we like because we like them rather than because they're technically superior, even though we pimp them ad nauseum as though they are. I once read an article about a tech…

The problem is that there are so many soft factors affecting the outcome that it's very hard to tell if even a great scientific study will apply to your case. The number of people on your team, their experience with the technology being used, their relationships between each other, the politics of the working space and thousands other factors may have much bigger effect on the productivity and quality then the choice of a typing system, and it may be pretty impossible to control for them in the study. I agree that it's good to approach things scientifically, but at the same time it's also good to question how much science applies to the problems being solved.

Re: Study of 49 programmers: static type system had no effect on development time

#83
post #62

If anything, I think this study is actually in favor of static typing. Why? Well, most of the proponents of dynamic typing claim it makes development faster. Most proponents of static typing concede this point, but claim that while it may slow down initial development, it makes maintenance much easier. Of course, this study is fairly limited and drawing conclusions from it is probably premature. I would not base any…

No, it isn't. Please read the paper and not the HN title. The paper clearly states that static typing slowed development time down .

"In the experiments the existence of the static type system has neither a positive nor a negative impact on an application's development time (under the conditions of the experiment)."

Maybe the abstract is lying, but that seems to agree with my original premise. That is, the type system had no effect on development time.

Now, the paper makes no comment either way--all it says is that the type system did not have an effect on development speed. My argument is that not having an effect is actually a point in static typing's favor: the main advantage of dynamic typing is supposed to be faster development, after all.

Re: Study of 49 programmers: static type system had no effect on development time

#84
post #51
post #35

Earlier quoted context omitted.

So you basically put type information in the names. That's typing in a sense.

No, he puts typing in the interface, and that's indeed typing in a sense, called duck-typing.

I think we are talking about different things. Duck-typing doesn't help in depicting what the return type of a function is when looking at the function signature only. You need to look at the function implementation (the actual duck) to tell what the return type is.

Re: Study of 49 programmers: static type system had no effect on development time

#85
Considering there are flawed assumptions (ass, you, me) in the abstract, I can't be bothered reading the rest of the paper.

> [Decreased development time means] that the quality must be improved since developers have more time left in their projects.

What kind of nonsense is this? What's this assumption based on? Hearsay? Shorter development time = better quality? What?

> [Increased development time means] decreases the code quality.

Again: what?

Re: Study of 49 programmers: static type system had no effect on development time

#87
Is it not so that development time is always maxed out automatically? Programmers improve the system as far as they can, and the study explicitly says that it did not address "design time, readability or maintenance time". Since software is almost never perfect (unless constructed with proofs, and you can make optimizations even there), I would think that programming time depends on the programmer's willingness to invest yet more time into its features - and this willingness is most likely not related to the language in use, but rather to financial or temporal constraints. Am I missing something?

Re: Study of 49 programmers: static type system had no effect on development time

#88
post #3

so, by swiching from python to haskell, you can get code that's 20x faster for no extra development time? sounds like a win to me. (cherry picked shootout data - http://shootout.alioth.debian.org/u32q/which-programming-lan... )

Please read the paper and not the HN title. The paper's title is casting doubts on the positive impact of statically typed languages as they had a negative impact on development time. (though not quality)

From the very first paragraph:

In the experiments the existence of the static type system has neither a positive nor a negative impact on an application's development time (under the conditions of the experiment).

What's the point of dynamic languages if they don't even make the initial implementation faster? They're certainly harder to maintain afterwards.

Re: Study of 49 programmers: static type system had no effect on development time

#89
post #72
post #57

Earlier quoted context omitted.

I think your point is important, and well made. The only problem is, people have been doing these experiments for 30 years, and do you know what the net effect it's had on the world of programmers: none at all. Saying "no no, this time really listen to this study " seems to be having no effect. There are a lot of causes for this, not least of all the things you mention (nobody cares about science, people like or disl…

"In fact, one of the few studies that people actually believe is the "some programmers are 10x better" study, and that was actually fairly well conducted - many students were given identical tasks, and a fairly large amount of time to do them." Can you by chance point me to this paper? I'd like to add it to my paper collection, since most of the studies I've seen concerning programmer variability use members of the w…

http://forums.construx.com/blogs/stevemcc/archive/2011/01/09...

Re: Study of 49 programmers: static type system had no effect on development time

#90
"According to the known guidelines for empirical research in software engineering (see for example [16, 17]), it is necessary to make explicit all elements that potentially threaten the validity of an experiment."

Or, y'know, according to any basic understanding of science whatsoever. Jesus.

They're essentially trying to test whether static typing optimises development time, and as with any optimisation, you only see a substantial increase if you're optimising the bottleneck. Static typing won't show any speed benefits if your coders are being slowed down by weird abstractions, poor tooling, or analysis of the problem.

The experiment didn't focus on use of the type system, but nor did it actually test anything close to a real-world scenario. All in all, it seems worthless to me.

Post reply on HN