Live data from Hacker News

Should I Learn Java in 2018

e4developer.com

71–80 of 165 posts

Re: Should I Learn Java in 2018

#71
post #65
post #51

Earlier quoted context omitted.

Hmm. Just checked memory use on some services we run on Go, Node, and Java. I'm not part of the Java team but results: Go: 40M Node: 64M Java: 4GB Any Java service I've seen in production has similar numbers. Coupled with the incredible startup time it's hard for me to see why you'd pick it in 2018.

JVM uses as much memory as you allow. Use `-Xmx39m` to beat Golang.

Yeah, but they all seem to need high mem amounts or they OOMException.

Re: Should I Learn Java in 2018

#72

If you want a low stress good paid job, where you would be able to rush home at 5pm, then yes. If you are looking for excitement, learn $hype_of_the_year and join a startup, but be ready to learn $hype_of_the_next_year soon.

Startups, assuming SV internet flavor startups, their tech stack is pretty standardized nowadays.

Python/Ruby/Node/Java, could cover like 99% of them maybe. Don't really see where the excitement is.

Re: Should I Learn Java in 2018

#73
Java or .NET are going to be prevalent in any mid-size or larger nascent organization. There's absolutely no reason why you wouldn't at least embrace it in your tool belt. It's proven technology. It may not be 'fun', but making stable business systems last is the point here - not building fun tech for the sake of building fun tech. (Wrong audience here, I know)

Re: Should I Learn Java in 2018

#74
post #19

if you learn Scala, you'll learn also Java as side effect

SBT is hellish though and the added complexity that Scala has imposes a lot of cognitive overhead. With Kotlin, you always end up writing cleaner Java and don't risk erring on the side of unneeded entanglement in the spaghetti monster that Scala can sometimes be.

you can use maven with Scala without too many headaches. "spaghetti monster that Scala can sometimes be" -> I'd like too see an example of a Java snippet that in Scala you can express only with a higher degree of spaghettosity.

Re: Should I Learn Java in 2018

#75
post #57
post #19

Earlier quoted context omitted.

SBT is hellish though and the added complexity that Scala has imposes a lot of cognitive overhead. With Kotlin, you always end up writing cleaner Java and don't risk erring on the side of unneeded entanglement in the spaghetti monster that Scala can sometimes be.

Before going multi module and needing special control on the build process and having a LOT of code, what exactly hellish do you think someone and a beginner at that will encounter? I have been writing it professionally for 5 years and I find it ok.

SBT is a monster for beginners and experts alike. Haoyi (Ammonite creator) wrote a pretty good article about it [1]

[1]: http://www.lihaoyi.com/post/SowhatswrongwithSBT.html

Re: Should I Learn Java in 2018

#76
I quite like modern java. With spark java, lambdas and all the helpful jars it’s really not a bad language. Plus you get native lucene and almost every other thing you could want is already written

In fact the only thing I wish for with it is fast syntax highlighter in Java like pygments for python or chroma for Go. The pygments/jython implementation is too slow and there is no the else mature out there.

It’s also useful to know career wise. It may not be the new hot thing but it’s likely to be around 20 years from now and a little stability in languages and tools is something to be thankful for.

Re: Should I Learn Java in 2018

#77
post #57
post #19

Earlier quoted context omitted.

SBT is hellish though and the added complexity that Scala has imposes a lot of cognitive overhead. With Kotlin, you always end up writing cleaner Java and don't risk erring on the side of unneeded entanglement in the spaghetti monster that Scala can sometimes be.

Before going multi module and needing special control on the build process and having a LOT of code, what exactly hellish do you think someone and a beginner at that will encounter? I have been writing it professionally for 5 years and I find it ok.

For starters, it's build time is rather slow, produces really fat jars of I recall well, and I find the whole code as configuration SBT files complex and easy to get wrong.

Re: Should I Learn Java in 2018

#79
I have been developing backend systems in Java, professionally, for the past 15 years.

You should not base your career choice of being Java programmer or not solely on Java's popularity.

There are genuine good reasons to learn niche technologies especially if you like them more. I think if you genuinely like something you are much more likely to succeed in that field and it is better for you no matter the size of the field.

Choosing niche technology means you will have less options when changing jobs but, remember, you only need one good offer.

Here's my thought about Java:

Java development is for a specific type of programmer that will most likely work for large corporation and more often than not on some unsexy backend system.

Java is uniquely suited to be language of choice for the enterprise for many reasons which I will not go into right now.

These companies are currently extremely hungry for Java developers. This also means you will not only have no problem finding a job, you should be able to command good starting price compared to about anything else (except maybe React).

Java is becoming better work environment, not worse, with every passing year. It has excellent tooling (IntelliJ IDEA being in my mind best IDE in the world except for Emacs with Slime). Excellent frameworks and support libraries (Spring Framework + satellite frameworks). Excellent support and portability (if you can install Java in particular major version it WILL work). Excellent build systems (Gradle being my choice). And it is also quite efficient with resources if you do it correctly and don't make bad choices -- JVM is actually very fast and the only major drawback is startup speed and memory upkeep which are not an issue for typical enterprise service.

Major drawbacks:

It is not particularly good language in itself, but that's what I get for learning Lisp. It got a bit better recently (recently in this case is past few years).

It is suited to particular types of projects which tend to be unsexy, enterprise services. If you become Java developer you probably will not be working on games, on exciting IoT projects, beautiful UIs, AI, and other exotic stuff. You will be doing backend systems and hopefully be paid well.

Oh, and you will be working with a lot of people that barely can write a loop. That's that. I said it...

Re: Should I Learn Java in 2018

#80
post #45

One annoyance with Java(and Kotlin too) is that it's pretty much the only language left that you really ought to use a specialized IDE with while pretty much every other language(including C#) you can get adequate support in VS Code or Emacs.

I think its the other way, there are only a few languages with as superb IDE support as Java. AFAIK its just C++, Java and C#. You can get shitty support with just syntax coloring for anything and anywhere of course.

Couldn't agree more. A powerful IDE with rich, intuitive, self-discoverable, user friendly design tools, debugging and refactorisation is as important to me than the language itself.

And I'd say a third thing that matters as much as IDE and syntax is the wealth of libraries. Not just common things like consuming a rest API. But also specialised things like dealing with spreadsheets, music, whatever your domain cares about.

Post reply on HN