views:

73

answers:

1

Are there any scientific studies (and conclusions) about the impact of mastering a new programming language over previously learned programming languages? I'm particularly interested if mastering various languages can decrease average productivity.

+8  A: 

I'm particularly interested if mastering various languages can decrease average productivity.

I strongly doubt this. Since I learned functional programming, I've improved the way I'm writing my Java (non-functional) code as well. Learning new languages poses a great programming exercise that hardly decrease your productivity.

aioobe
downvoter, care to explain?
aioobe
I clarified the question. I'm sure we can all do stuff in many languages, and being able to learn from each one is highly beneficial. However, I highly doubt most programmers master more than 2 or 3 languages.
hgpc
Depends on who you call a programmer, but I'd say the opposite, most programmers *do* know more than 2 or 3 languages.
aioobe
I think hgpc is saying that while most programmers probably *know* many languages, very few programmers will truly master more than 1 or 2 languages
Martin
@Martin Exactly.
hgpc
Ah, ok, sounds closer to the truth. Still though, I sincerely doubt that mastering multiple languages is a drawback when it comes to productivity.
aioobe
@aioobe, can you tell us which functional language you've picked up?
duffymo
@duffymo, Scala, and some OCaml (through the use of [coq](http://coq.inria.fr/)) Specifically, my way of thinking about immutable objects have changed.
aioobe
Nice, thank you. I'm dipping my toes in the Scala pool now, too.
duffymo
If you don't mind my asking, how long did it take you to achieve your current level of mastery? Is your experience limited to exercises, or have you written a complete application?
duffymo
+1 from me for your diligence.
duffymo
@duffymo, I've done mostly small programs. Like solved (and constructed) some lab assignments in some cs-courses. I'll be doing my first real application (a aspect-like compiler for a subset of Java) in the beginning of next year).
aioobe