
Ask HN: Is Java still worth learning/relevant? - gamechangr
I know it&#x27;s still around for the last 20 years, so that&#x27;s saying something.<p>Do you enjoy programming with Java? Or is it too slow and verbose?
======
bbcbasic
If you learn Java you will be able to get a job doing it. So in that sense it
is relevant. I personally feel it is a dead end though. And this is coming
from someone who loved Java when he first played with it 15 years ago
(previous experience was C++ / VB6 / BBC Basic though!)

If you want to enjoy your job, or your hobby, choose a better language.

I'd suggest Clojure or Haskell. But where I live at least it is a fight to get
to do paid work in those languages, but a fight that is worth it.

Hard to explain why Haskell is better than Java in a little comment. I say
learn some Haskell and Java and discover for yourself what you prefer.

~~~
collyw
I have been looking around for jobs here in Spain, a lot of the better paid
senior level stuff is for either MS stack, or Java (they all seem pretty
corporate style). There are Python jobs around, but more mid level.

~~~
bbcbasic
Same problem here. It takes some ingenuity to get paid well and use the stack
you love. I am working on it. One way is to convince your current company to
try something new on a small project to get its feet wet.

Any MS shop could consider F# and Java shop could consider Scala/Clojure as in
each case it compiles down to compatible ones and zeros.

Or it could be a case of get a .NET/Java job at an open-minded enough company.

One of my arguments to introduce F# (when I am ready to) is that F# is now (a
probably better version of) what C# is going to be in 5-10 years time, so lets
get ahead of the curve.

------
geebee
This is probably an unsatisfying answer, but large tech companies (such as
Google) generally want to conduct interviews in Java or C++. Python seems to
be an outside option. So for that reason alone, you might want to learn java.

On the bright side, if that's what you're using Java for, you might not mind
it so much. Academic-leaning data structures and algorithms problems don't
require the heavy frameworks that got Java a bad reputation[1], nor do they
deal with programming cultures that prefer method names that read like the
first 5 chapter titles of the GOF design patterns book. If you need to write
code to find a cycle in a linked list, or find the sub matrix with the largest
sum, or find a sub tree in a BST, I don't think you'll find Java particularly
onerous.

[1] I've heard things have improved considerably, and that Java frameworks are
now much lighter than they were in the early days of spring, struts, and
hibernate.

------
darreld
Yes I enjoy programming in Java. On the server-side its performance is very
good. As far as the enterprise goes, it will be in use for years to come.

It is a bit verbose but I'm ok with it. I know its fashionable to hate on it
but I find it a comfortable language to work in. So, yes it's still very
relevant in business and is worth learning.

~~~
mondainx
Let the haters keep hating on Java; this continues to leave well paying jobs
on the table for me, I love working with Java and Android.

------
brudgers
My opinion: If you're interested in learning a JVM language such as Scala or
Clojure or Groovy, it makes sense to to know at least a little bit of Java
because you can't really take the "Java" out of "JVM" with a library and error
messages will often be provided relative to the underlying Java implementation
- i.e. Clojure and Scala often throw Java errors.

As for Java being "too slow", for what?

------
Firegarden
Short answer. No. Long answer. Java is very similar to C# and so time would be
better spent learning C# as the language is more evolved and so you will get
to learn more by default in learning C#. Also I believe your next best bet
would be Python as the language concepts are similar.

~~~
mrsoft
How are the language concepts of Python similar to Java or C#?

~~~
Firegarden
Do you really want to know or are you just asking because you don't believe
me?

~~~
pdiddy
Do you really want to know or are you just asking because you don't believe
him?

------
orionblastar
Yes there are still companies that use it and if you want to learn Android
programming you have to know Java because Android has a Java virtual machine
in it.

Microsoft made their own Java and got sued by Sun, so they made Visual C# and
the Dotnet languages to compete with Java.

~~~
gamechangr
I've been learning Ruby on Rails, Python, Javascript, and now am considering
focusing on learning Java.

As you would guess, there is quite a bit of difference.

Appreciate the feedback.

~~~
orionblastar
I've been told that they BlueJ IDE is great for beginners.

[http://www.bluej.org/](http://www.bluej.org/)

When I started learning Java in 1995 I used Windows Notepad because there was
nothing else I could find. There was no Hacker News to get good advice from,
and paper based Java book to read from instead of free ebooks on the Internet
and Github repositories for example code. Sometimes I had to pay money to get
a floppy disk postal mailed to me with example code on it.

~~~
mondainx
I first picked up java in 95 too; I can't for the life of me recall the name
of the tool I used.. mocha or something like that for Windows.

------
mcv
It is certainly not outdated. I do not enjoy it as much as I enjoy other
languages, and I do think it's too verbose, but it's incredibly relevant. Most
enterprise software is written in Java, and that's not going to change any
time soon. And big companies need lots of programmers.

Some of the advantages of Java are that even mediocre programmers can be
productive in it, and it scales very well to even ridiculously large, complex
projects. Of course those can also be considered disadvantages from certain
viewpoints, but from the viewpoint of large companies (and therefore job
opportunities), they are definitely big advantages.

Personally, I'm convinced that Java is the Cobol of the future.

------
jefflinwood
Yes - if you're interested in Android development, it's definitely the best
language to use to get started.

Java can be a little clunky, but once you learn Java you can pretty easily
learn the basics of C#, for instance.

------
DigitalSea
I am not a fan of the language myself, but Java is definitely still worth
learning. It might not be the flavour of the week like Javascript or Go, but a
lot of companies still use it (popular in the enterprise) and if you want to
build an Android application, you'll need to develop using Java. Once you
learn Java, you will find learning other languages like C# or C++ will be a
lot easier, it's a great exercise in patience and a gateway to other
languages.

------
zhte415
I disagree with comments saying it is outdated. It is not. Choose your
audience, choose your stack.

Is COBOL/DB2 outdated? Probably, but not sufficiently so to mean companies
have moved their infrastructure away from it. There are good jobs to be found
in mainframe land, many, and in great demand with great reward.

Java is probably not COBOL in audience, but it is engrained in a lot of
enterprises, or as another commenter mentioned, even Android. It is here to
stay.

------
freedevbootcamp
In the midwest, java programmers are the top paid programmers and the most in
demand.

------
mfalcon
As other users said, It depends on what would be the purpose of learning it.
I'm currently consuming data from different API's and currently using Python.
So the next step is learning Java and some Apache technologies: Kafka, Hadoop,
Storm which are built in it.

I also will need to code a native mobile app and Java is the language of
choice for Android.

------
thorin
Interesting responses. Java and C#.Net are by far the biggest languages used
in developing enterprise business software at the back end. Also big tech
companies such as Google use Java extensively.

A company will assume if you graduated in CompSci in the last decade or so
that you have used Java fairly extensively.

Java is fast to run, and pretty fast to develop in due to static typing and
when using an IDE although there might be some additional boilerplate code. I
enjoy using it and there are plenty of Java options if you want a more RAD
style of development like Rails e.g. Spring Data/Batch, Play, Grails etc.

------
why-el
Not as much Java as the JVM, because even if people are abandoning Java the
language, the JVM will survive I think since not-insignificant languages such
as Clojure and Scala are using it.

Learning Java to a comfortable degree will most likely expose you to the JVM
and its inner workings, which is really a good piece of engineering.

------
jslove
Good if you want to use JavaSCRIPT. But most people prefer to use Dalvik
becauz it runs on ARM which is much cheaper than ms windows devices. But JVM
Cobol is probably more backward compatible

