Hacker News new | past | comments | ask | show | jobs | submit login
Forbes: What is the most valuable programming language to know for the future? (forbes.com/sites/quora)
10 points by kevinSuttle on July 15, 2014 | hide | past | favorite | 21 comments



I can't help but focus on the failings of the reasoning of the answer given here. I keep getting flashbacks to the late 1990s when you got that answer, but swap "Javascript" for "Java".

I am failing to find sound reasoning behind the answer, which is essentially "Just learn Javascript, ok?".


If you learned Java in the late 1990s you did very well. Java remained the gateway into many corporate jobs well into the 2000s; all sorts of dot-coms, consulting, enterprise rewrites, and even startups and open-source projects were open to you. It wasn't until 2005 that Ruby/Python/JS started getting hot; before then people used PHP for webapps and Perl for scripting, but they were still nowhere near as general-purpose as Java.

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.


Not to mention Java is still the #2 language used, and #1 on the enterprise.


>I can't help but focus on the failings of the reasoning of the answer given here. I keep getting flashbacks to the late 1990s when you got that answer, but swap "Javascript" for "Java".

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).


Dart is created by Google, but hardly "Google only". It runs on at least IE, Safari, Firefox, Opera, and of course Chrome.


Google only as in "only Google cares for it".

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.


Throw an answer on the original thread. I'd love to hear your take. Sounds like you've got some more context to paint a clearer picture.


Question was originally on Quara, and there are a lot of other compelling answers there.

http://www.quora.com/Computer-Science/What-is-the-most-valua...


go (golang, google language) is pretty cool too. They are pulling a lot of good things together from other languages (c++, java) but leave out the useless/once fashionable/error prone stuff. It even has pointers (which I like because they are fast).

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.


lack of generics is one of the complaints I have heard quite a bit.


That's probably more a matter of taste. Go has a reflect package which allows the programmer to determine type at runtime, making generics unnecessary. It may not be as convenient and familiar as generics. Here is an example http://play.golang.org/p/a18VESulWS


>That's probably more a matter of taste. Go has a reflect package which allows the programmer to determine type at runtime, making generics unnecessary.

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.


Well, you are right it reminded me of method overloading. Otherwise I think time will tell. In the end generics are just types with parameters, for creating typed permutations _at_compile_time_ of functions/maps etc.. And as you said, java worked quite a while without them.


I've heard it has very fugly error management. No exceptions.


Sorta. It's false that it has no exceptions - there's panic/recover. But idiomatic Go relies on error codes and checking the second return value of a function. As a result, Go code tends to be littered with if-statements that each check the result of a function and usually bail out with an error if an error occurred.

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.


I posted the quick story of how this happened. http://kevinsuttle.com/posts/quora-javascript-forbes/


Nowadays one language isn't enough. But the java syntax styled langues like java, c#, javascript and swift will get you anywhere. With some additional html, css, and maybe xaml for the styling.


Actually thats "What is the most valuable runtime to target for the future?", right?


A: Depends on the value of the things you are building with that programming language.


Atwood's Law: JavaScript


unfortunately I have to agree.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: