It is a crap language designed in an afternoon and nowhere near good enough to solve the problems we currently use it for.
Just a few things of my head: 'this', 'var', no integers, semicolons, no block scope.
It is a crap language designed in an afternoon and nowhere near good enough to solve the problems we currently use it for.
Just a few things of my head: 'this', 'var', no integers, semicolons, no block scope.
There's no point in dismissing JS due to simple lexical issues; those have in no way prevented us from maturing the language use through idioms, patterns, tools and collective knowledge.
JS is more than good enough as a basis for CoffeeScript and Emscripten - so why should we care whether scope context or a lack of block scope can be initially confusing?
"No integers" is bad.
"this" can swing either ways. It provides some cool possibilities.
"semicolons" however (either the presence or the removal of) is a totally inconsequential and trivial syntactic thing.
Removing semicolons doesn't even buy you what a small amount of syntactic sugar buys you. You saved a few keystrokes. Big fucking deal.
This lets you do bar = instance.foo; bar(x) and it'll still work. Much more consistent.