I also have to disagree with programmers who think learning a new language is just syntax, but for a different reason: Semantics. Sure, any programmer who knows a language could probably pick up the syntax of another language with relative ease. But knowing the semantics of a language is what separates the wheat from the chaff. Programmers who don't understand the semantics of the language are the ones who create the subtle, hard to find bugs. This is especially true with JavaScript: 2 == "2" (true), 2 === "2" (false), 2 + 2 == 4, 2 + "2" == "22", 1 (true), 0 (false), "1" (true), 0 == "0" (true), "0" (FALSE), "true" (true"), "false" (TRUE), [1, 2, 3] (true), [] (TRUE), I could go on. With the explosion of new web sites thousands of programmers began churning out crappy JavaScript because they thought," hey, I know (VB/C/Pascal/PowerBuilder/DreamWeaver/etc). Coding a website should be no problem!" Boom. Now this guy just wrote some crappy code which goes further to sully the name of JavaScript, which is not without its own warts but overall is a capable scripting language.