OK. Here's the question. We all know that most of the received wisdom of facts about programming (e.g. some people are hundreds of times better at it than others, but more or less the same within a given organisation), a.k.a. The Protocols Of The Elders Of Geekdom (by me, anyway) is either wildly misrepresented or based on about 10 people programming for 2 hours or methodologically dodgy because the conclusion wasn't what was being tested for at all, or some combination thereof.
So... is there convincing evidence that it is 'better' to teach novices, especially children, languages without explicit typing (e.g. Ruby, Python) than ones with (e.g. Java / C#)?
It seems counterintuitive to me. Clearly for the first minute the ability to say
weasel = 3
badger = 12
duck = "quack"
hamster = duck + badger
(0...times).each do |i|
will be more appealing than saying
int weasel = 3
int badger = 12
string duck = 'quack'
hamster << badger << duck (made up syntax)
string function oink(int times)
int i: (0...times) do
but I suspect by minute 5 the earlier finding of errors puts the explicit declaration ahead. And, and I think this is an important point, not having to say int, string Array[int] Map[string,int] etc. doesn't stop you having to know about the existence of the types and their properties. Not having to say int badger doesn't stop you having to know that duck + badger is quack12 and weasel + badger = 15 (or whatever).
This is not to say that the 'language with many of the good attributes of Python and Ruby but with explicit type declarations' actually exists, but do people use Ruby / Python / Squeak despite the typing rather than because of it?
Discuss. Or not.