Celestial Weasel (celestialweasel) wrote,
Celestial Weasel

Give someone a program and you'll frustrate them for a day...

... teach them to program and you'll frustrate them for life.

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
def oink(times)
(0...times).each do |i|
return ret

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)
string ret
int i: (0...times) do
return ret

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.
  • Post a new comment


    default userpic

    Your reply will be screened