Forbes: What is the most valuable programming language to know for the future?
forbes.com
forbes.com
I am failing to find sound reasoning behind the answer, which is essentially "Just learn Javascript, ok?".
An 8-year run is pretty darn good for a technology in our industry. Pretty much the only thing that's bested it is C's impressive 30+ year run. And C was really only the hot, commercially successful language to learn during the late microcomputer era of 1985-1991, before which the hot language was assembly (for microcomputers) or Lisp (for enterprise), and after which C++ took over the microcomputer market.
Well, I see a failing of the reasoning behind your substitution of JS with Java too, which you made only because both languages are touted as "just learn that". I find that looking at similarities never tells us anything important ("A baseball is like a planet, in that it's round"). What's important is knowing the differences.
And the differences are many.
Javascript is the de facto AND de jure standard on the web, while Java wasn't.
Javascript is used all over the web -- Java applets never really caught on, while Java only caught on for enterprise and server-side stuff really.
Java was the child of a single company, and not a very big one at that, Javascript is a standard and has competing implementation from all three gorillas (Google, MS, Apple).
Java had a huge competitor on the same domain, .NET, and several smaller competitors for web apps and server work (RoR, PHP, Node, now Go etc). Javascript has no competitor (Flash died, and Dart is Google only, and compiles to JS anyway).
It's not an industry standard, and no other vendor cares about implementing the VM or supports the core language.
What actually runs on IE, Safari, FF etc is Javascript, not Dart. "Dart" only runs secondarily as a javascript target -- one of tens, and not a very popular one even at that.
http://www.quora.com/Computer-Science/What-is-the-most-valua...
Best of all it has super duper easy concurrency baked in (compared to java threads), which really allows a lot more programmers to really use all those cores, even on their notebooks (I love seeing top at 400% on my notebook (4 cores):-)
Also it has garbage collection and is compiled to native machine instructions so it is really fast. And you'd be surprised how much the 1.3 release has matured already even with still lacking libs.
Apart from an as-yet sparse eco-system, what is not to like.
It's fugly, but it's fugly by design. The philosophy is that if you want reliable programs, than error conditions should be explicitly handled, right there in the source code, so you know you've covered everything you need to cover.
That's not "making generics unnecessary". That's "using an ugly hack that throws typesafety away instead of a proper solution".
And it's more familiar than generics, that's what Java had before they understood that they had to have generics.