Alfred Thompson pointed out this article, Retiring Python as a Teaching Language, in his latest blog. Mike Zamansky’s comment sort of hit the nail on the head. I always wonder when I read articles like this who the authors are teaching. High school freshmen? Not likely unless the kids have one heck of a middle school programming curriculum. AP level kids that have two or three years of programming background? Then the author has an argument but they are far from “beginners”. Most professional programmers that have ideas as to what a beginner language in education should be really do not understand the definition of “beginner”. Beginners are not the kids that have done programming at home because it is fun. Beginners do not know how to use an IDE of any kind. Beginners do not understand that an equal sign does not always mean equal (or is that rarely means equal?). Beginners do not understand that in order to use a language the language has to be downloaded and installed on the computer, sometimes not a trivial exercise. Beginners are sometimes taught by teachers that are beginners themselves so any beginner language better be stupidly easy to install and get started with. The language also needs a beginner level textbook written by a teacher, not a really smart expert in the language. Beginners, more often than not, are kids taking this one and only programming course because there was nothing else offered that period. (Small school issue but in Montana most schools are small.)
Just because a language does not do certain tasks easily is not a reason to eliminate the language. I like to mess with Lego robots. Visual Basic will work with Lego robots if you beat on it hard enough (the language, not the robot). I do not want to beat on it so I use RobotC for the robots. Does this mean I should remove VB from the list of languages to teach? No way. If I want a language to write a program that requires buttons of various types, text input fields, the ability to make pretty GUIs and can read and write to a simple text file VB is my choice. Both VB and RobotC can be great beginner languages.
I will argue that the reason any language is used in a high school classroom is that the teacher is comfortable with the language. It has little to nothing to do with the practicality of the language, its usefulness in the job market, or what the colleges want the incoming freshmen to know. Teachers will teach what they know. (Of course I am presently teaching Java and I know no Java, but then I am an idiot.)
Maybe JavaScript is a great beginner language but I have a feeling Scratch and Small Basic, just to name a couple of my favorite beginner languages, are much more appropriate for beginners.
Now that I have said all this I am curious about JavaScript. I dug around for a few minutes and I noticed Khan Academy is using JavaScript as their intro language. The trouble is KA does just coding on a web browser interface. Nothing on how to do standalone coding on a computer, what IDE to use, what to download to program with JavaScript, how to publish to a device or any of those handy little skills. I guess those should be obvious to a beginner.