Khan Academy Chooses JavaScript As Intro Language 355
jfruh writes "Slashdotters (many of whom cut their teeth on much-maligned BASIC) have long debated what language kids should learn programming in. Khan Academy, the wildly popular producer of educational videos, has come up with an unorthodox choice: JavaScript, not least because of its ability to keep kids' attention with something fun and graphical."
The reason seems obvious to me (Score:5, Informative)
No additional tools needed. Everyone watching a Khan video already has a JS environment.
keep the kids ignorant and unable to compete (Score:0, Informative)
Nothing better than toy programming languages to keep the kids from ever learning the concepts that they will need in order to do software as a career.
Call it "Boomer lifetime employment assurance".
Old News (Score:5, Informative)
The video the article uses as its source is from October.
The article also incorrectly states that this is Khan Academy's first programing language. There are a few intro to Python videos on the site already.
Re:Logo! (Score:4, Informative)
Try scratch. Its basically logo with drag and drop commands and better graphics. I recently retried logo and found the modern version of it highly confusing with its attempt to be heavily threaded.
Re:Since when is JavaScript an unorthodox choice? (Score:4, Informative)
You not having a clue how to code JavaScript doesn't mean JavaScript is a bad language, merely that you are out of your depth with it and simply don't understand how it works.
I agree that javascript is too often spoken poorly of as a programming language, but having the addition operator not be commutative is just twitch inducing. See the Wat video, or try
[] + {}
{} + []
in you're JS console.
Re:My post to the original Slashdot discussion (Score:4, Informative)
half the time you won't even get an error message when something went wrong
FireFox, MSIE, Safari and Chrome all have a javascript console which prints plenty of error messages. F12 is your friend.
printf-style debugging isn't all that easy either
You can log text and data to the javascript console using console.log(); or any of the other debugging features like line-debugging.
and of course you need to have a HTML to even start doing Javascript, which adds a another layer of complexity.
...and teaches you to create documents to relatively loose syntactic rules before switching to the more strict rules of JS.
I agree that javascript isn't the nicest language out there, but it's probably the best compromise.
Re:The reason seems obvious to me (Score:5, Informative)
If a million monkeys are given a million typewriters...
Typewriter repairman would still be a viable career choice.
Re:Since when is JavaScript an unorthodox choice? (Score:5, Informative)
I'm sorry, but as someone who's written way more JS than anyone should ever have to I'd like to politely ask you to shut the fuck up and stop trolling me. You could have at least brought up what points you think I'm wrong on - but I can point out solutions that were created specifically to combat each of the issues I pointed out. Hell the basic jQuery code alone deals with all of these issues AND jQuery itself was created so you could code vanilla JS without having to waste time dealing with most of them.
Oh, and I would really recommend CoffeeScript. See how wrong you think I am after coding CoffeeScript with jQuery for a week. Don't forget to use the node.js watched compile freature - you'll get vaidation each time you save. It's fantastic.
Re:Since when is JavaScript an unorthodox choice? (Score:4, Informative)
On the flip side, I can't think of a time that knowing about setting up web servers or other servers is going to help with the programming at all
In one presentation at Google, Dan Weinreb from ITA said that unless the code delivered to be run in production in ITA doesn't pass muster for the Ops people, the Ops department will refuse to deploy it. There must be some documentation of upgrade steps, problem diagnoses procedures etc. Simply put, the programmers must write the code with some knowledge of how the Ops people are going to run it. I imagine that other companies, at least service-providing companies with internal development, have similar guidelines for developing internal code.