Comment Re: Citation Needed (Score 1) 354
Hint: It doesn't matter if learning the language let's you work around these things, the fact I highlighted them demonstrates precisely that I do know the language,
As I pointed out, Your "points" 1 and 4 show that, in fact, you don't understand the language. (This statement isn't even coherent: "This is a relic of the fact that Javascript wants to be both OO and Prototype based". What other conclusion could I draw?)
Points 2 and 3 clearly shows that you don't understand the scoping rules. Once you actually learn the language it becomes clear that there are no issues to "work around". The rules are simple and clear. There are no inconsistencies. Though it looks like you want to introduce some...
Why in a code block like a function would you ever want a variable to become global by default? This is kludgy, it would've been better to only go global if you explicitly declare global.
If you understood the very simple rules, you'd know exactly why that happens. You'd also understand why it would be "kludgy" (inconsistent) to make it work like you suggest!
A good, well designed language, doesn't require you to take extra steps to "learn the language" beyond the concepts necessary to use it at a base level, Javascript does (and so do languages like PHP) and that's exactly why it's kludgy.
Here's something fun: PHP perfectly fits your criteria for a "good, well designed language" as it "doesn't require you to take extra steps to 'learn the language' beyond the concepts necessary to use it at a base level". Why, it's even a better fit than your exemplars: Java and C#.
That's embarrassing!
Here, I'll give you a chance to redeem yourself: Following your newly revealed definition for "good, well designed language" how does JavaScript fail to meet your criteria that would not also disqualify languages that you consider well-designed like Java and C#?
Good luck.