Live data from Hacker News

Ask HN: Is Java worth learning?

news.ycombinator.com

21–30 of 45 posts

Re: Ask HN: Is Java worth learning?

#21

Earlier quoted context omitted.

JavaScript probably makes the same list...

Care to elaborate? I havent done any frontend stuff in a few months but it appears to be the only solution there. Even when using typescript, you still want and need to know js. Regarding Java, i think its a good starting point if you want to hack your first web project together. You sort of see how everything works together. Before that I always recommend looking at C just to know what you are missing out on. If the…

Woops read the wrong parent comment. Ignore me :).

Re: Ask HN: Is Java worth learning?

#22
Java is nice for OOP. It's great for working in large groups. It's not a hacker language - too slow and heavy, but it does things well for slow and steady development.

I'd recommend learning Kotlin instead though. It does nearly everything Java does, but better. One of the few new languages that feel fun to hack with but don't feel hacky like JS.

Re: Ask HN: Is Java worth learning?

#23
I think every one should learn at least 3 different types of languages (my recommendation for each below):

- Interpreted: Current choice is Python, pretty much hands down undisputed. Personally there is a lot to dislike about Python (who doesn't like 24 byte integers?) but that's how things are.

- Compiled (VM based): My choice here is C# instead of Java or Go because (1) C# is now available cross platform and more "free-er" than Java (2) its much more upto date in virtually every respect (3) it has great tooling and rich library to speed up the development (4) its not owned by Oracle and it doesn't ship with spammy browser toolbar to unsuspecting users (5) unlike Go, folks working on C# are not stuck in excessive minimalism. Almost exact opposite, they want C# to have good features from every other language out there with massive new releases each year. That's great - at least for me - because I've access to everything from very powerful lambdas to parallel paradigms to async features, when I need them.

- Compiled (direct to metal): I'd like to chose Rust in future but I'm going to recommend C++ instead for now. If you are working on pretty much anything at the deep end of the computer science including OS kernels, writing your own compilers, building runtimes of variety of tools like TensorFlow, graphics engines, physics engine, embedded libraries etc - then you need to learn C++.

Having said that, if your purpose is to just get job go with Python and Java. These are #1 and #2 languages according to IEEE Spectrum in job postings:

https://spectrum.ieee.org/static/interactive-the-top-program...

Re: Ask HN: Is Java worth learning?

#25
post #23

I think every one should learn at least 3 different types of languages (my recommendation for each below): - Interpreted: Current choice is Python, pretty much hands down undisputed. Personally there is a lot to dislike about Python (who doesn't like 24 byte integers?) but that's how things are. - Compiled (VM based): My choice here is C# instead of Java or Go because (1) C# is now available cross platform and more "…

I'd say going with more than one language will just confuse beginner. I've seen many students struggle with the language soup schools cook for them.

Re: Ask HN: Is Java worth learning?

#26
post #19

It's #1 on the TIOBE index, for what that's worth. https://www.tiobe.com/tiobe-index/ I think the most certain thing I can say is that Java has a bright-present, and a not-dim near-future.

I won't put too much weight on TIOBE index (its mainly created from search engine stats). If you are looking for rankings from jobs perspective, just look at the direct job stats for languages. IEEE Specturm probably has better ranking: https://spectrum.ieee.org/static/interactive-the-top-program...

Depends on the contry I guess, however for Central Europe that ranking seems just wrong. Java is likely to be #1 here. JS & PHP are much higher as well.

Re: Ask HN: Is Java worth learning?

#27
post #10

In my opinion, Java is not an enlightening language. In other words, learning Java will not make you a better programmer in other languages. It is only good for getting jobs. If you do decide to learn it, make sure to use recent educational materials for Java 8+, so you learn how to use advanced features like lambda functions and unsigned integer types.

> It is only good for getting jobs.

Beginner will either want a job or write some simple apps. "enlightening" languages are worthless for them.

Re: Ask HN: Is Java worth learning?

#29
It can't hurt to learn Java. There's a huge amount of Java code out there, and there are lots of Java jobs. It has a future, though the hype wore off it a long time ago.

That said, I can't say I particularly like Java, or find it fulfilling or interesting in the same way I like elegant and clever C++, or even Python. It's had all the sharp edges filed down, making it a pedestrian and mundane language. But that's of course why a lot of companies use it; it's a known quantity which you can have a team of people work with and get a working result in a planned timeframe. On the downside, there are too many people who only ever developed with Java, and can only think about design within the constrained limits of what Java allows, i.e. basic OOP. Definitely learn more than one language so you have a wider appreciation for what's possible.

Personally, I'd recommend Python 3 as a first language to get started with today. You can rapidly get started doing interesting stuff with a minimum of fuss and vastly less unnecessary verbosity than Java. It's also less constraining with regard to design; it doesn't force the use of classes and OOP like Java, so you can experiment with different ways of doing things.

Re: Ask HN: Is Java worth learning?

#30
It depends on what you want to do with your programming knowledge. Here are my considerations:

* If you want a steady job in a large organisation then Java will probably keep consistently employed, but probably also uninspired.

* If you want to learn some powerful programming concepts and gain solid CS foundations, then I'd suggest reading SICP and learning Scheme.

* If you just want to learn something that you can be productive in quickly then Python is a good choice.

* If you just want to tinker with web pages, etc then Javascript.

It is very hard to predict which languages will be considered great in the future. Go, Rust, Kotlin, Clojure, Erlang, Swift, etc all have their ardent fans and when you understand their reasoning you might be in a better position to make your own informed decision, but I would not suggest learning any of those as your first language.

Post reply on HN