I have to say that Java is not my idea of a good first language
I have been in a ton of debates where one language is touted over another, but the way he worded his statement made me stop and think. Alfred's statement made me wonder what characteristics would make up a 'good first language?' Pretending for a moment that there is no such ideal program, what would it be like? What would the goals of the language be? Would it be a high level program that hid the dirty work so that the student could concentrate on concepts? Would it be a low level program that would teach the student what goes on behind the scenes? Should the emphasis be on writing useful programs, or merely functional? Given short attention spans, what would a language need to be able to do to keep students interested?
In the interest of keeping this an intelligent debate, any posts whose only content is along the lines of 'c is the best language' will be deleted. The idea is to discuss programming from a more abstract position, not to discuss which language is the best.