The current headline, "Stanford adopts JavaScript, drops Java for its intro to CS curriculum" is incorrect. Stanford is piloting two new classes one in JavaScript and the other in Python to determine the effort, benefits, and downsides of moving the introductory class away from Java[1]. The main introductory class, CS106A, is still being taught in Java[2].
[1] From a Facebook comment posted by one of the CS106* instructors: "We are running some experimental CS1 offerings. One of them is "106J" in JavaScript. Another, likely in Python, will be tried next winter. None of these replaces 106A; they're offered concurrently as smaller experimental classes because instructors wanted to try out other approaches. If one of these approaches proves to be really awesome, maybe someday we'd consider switching A to it. But we have no plans to do such right now. There are some rumors about this based on one misquoted news article, but they are false."
I just don't understand this, even if students were asking for it. It's a poor language whipped up in a week or two - is it really what you want to base someone's first exposure to programming on?
It's pretty far from that now. It's a modern multi-paradigm language with a package manager, module system and enormous community. It's a pretty solid language for teaching in my opinion.
The package manager shouldn't matter in the least for a 100 level CS class as you're supposed to be learning the fundamentals instead of just bringing in left-pad, and the like. I don't think I used an external package in any of my CS classes (in any language) until maybe senior year. We used C, Java, and Python for various classes throughout my time. Oh, and one class used PHP.
What I wonder though is, what is the goal of the current class? If it's about teaching OO fundamentals, I can't imagine JS would be a better replacement for Java than Python. If you're just trying to teach concepts, sure JS is fine, but it just seems like Python would be all around better for instruction than JS.
I admit that for classroom exercises the package manager isn't a huge draw, but when someone learns some JS basics and they want to try to make a real thing, the fact they don't have to move to a new ecosystem to get libraries keeps the momentum high.
Exactly! Even though I learnt programming using Java, C and Python. Reading Eloquent JavaScript (to get into JS) reinforced concepts I learnt previously with other languages. It also helps that there is a bunch of great learning material for javascript today (freeCodeCamp, et cetera).
Also, the direct applications of JavaScript are numerous: web scrapers, node bots, front-end, back-end, iOs/android applications and a lot more!
For people who look at programming as a medium of expression to build stuff, Javascript is a language that a computer can do a whole breadth of things with.
[1] From a Facebook comment posted by one of the CS106* instructors: "We are running some experimental CS1 offerings. One of them is "106J" in JavaScript. Another, likely in Python, will be tried next winter. None of these replaces 106A; they're offered concurrently as smaller experimental classes because instructors wanted to try out other approaches. If one of these approaches proves to be really awesome, maybe someday we'd consider switching A to it. But we have no plans to do such right now. There are some rumors about this based on one misquoted news article, but they are false."
[2] http://explorecourses.stanford.edu/search?view=catalog&filte...