Live data from Hacker News

Java Is Underhyped

jackson.sh

161–170 of 808 posts

Re: Java Is Underhyped

#161

Earlier quoted context omitted.

Yes, but that's my point. If I don't need performance, Python is ok. If I do, I won't go Java, I will choose something that is built for performance. Python is good enough for 99% of my performances need. The last 1%, jumping to java is not a big difference, I'll use rust or go. I won't use go for the ecosystem, but it's unique characteristics: easy concurrency, dead simple binary production. Java can't beat that. IF…

Java is orders of magnitude faster than Python for code that doesn't spend all of its time waiting for IO. Java perf and Go perf are about the same.

But not Rust.

And Go is better if you do I/O.

That's my points. Compromises.

I'm not saying "Java is bad". I'm saying, "I have no use case where I, personally, would use Java over something else."

I do know other people have use cases for it.

I just don't, because those compromises don't make sense for me.

Re: Java Is Underhyped

#162
lol, Java was overhyped for quite some time.

It even did deliver at the beginning, but then it stagnated.

Now, it's just bloated. The syntax, the programming model, the package manager, the runtime. If you look at systems like Eclipse and Jenkins, even the software developed with it seems to go that way.

Re: Java Is Underhyped

#163

For my use cases, Java has all the wrong compromises: - not high level enough to compete with Python/Ruby/JS/PHP, etc - not low level enough to compete with Rust/D/Nim/Zig - not specialized enough to compete with Erlang/R/Go/Julia - not opinionated enough to compete with Lisp/Haskell So why use Java ? It's good, it's fast, it's productive, it's well supported, battle tested and documented for decades with a huge pool…

You perfectly nailed how I feel about java.

Re: Java Is Underhyped

#164
post #152

Earlier quoted context omitted.

You say Java is not X enough to compete and then list things that Java has successfully competed with for years and continues to have a very wide lead over now , with the exception of Python and JS in limited circumstances -- the browser and machine learning. The reason Java does compete so successfully is that it is high level and yet provides a virtually unmatched combination of performance, maintainability and obs…

I'm just exposing my own selection criteria. It's not an absolute metrics. I'm just saying, "to me, that's why I never end up using java". Java is good enough for the vast majority of things. But so is Python. And for specialized things, there are better choices available to me. I'm not a Fortune 500 though.

> But so it Python.

For a very different definition of "good enough," i.e. unless you're working on a large codebase maintained by a large team for years, need high performance, or need deep low-overhead observability. So Java is "good enough" for a much wider selection of "serious" (large/mission-critical/long-lived/ high-performance) software.

> And for specialized things, there are better choices available to me.

That's OK, but in reality Java does very successfully compete with almost all the languages you've mentioned; it is they that, in practice, find it very hard to compete with Java.

Re: Java Is Underhyped

#165
I read this post far more as "JS/TS are overhyped" than "Java is Underhyped". Javascript is a mediocre at best language which has been thrusted into the limelight by the fact that it's the language of webpages. Some people have decided that they want to write the same language everywhere, so they started using it for the backend.

The points listed in the article for why Java is great apply to many of the workhorse languages in the industry today.

Re: Java Is Underhyped

#166
post #164

Earlier quoted context omitted.

I'm just exposing my own selection criteria. It's not an absolute metrics. I'm just saying, "to me, that's why I never end up using java". Java is good enough for the vast majority of things. But so is Python. And for specialized things, there are better choices available to me. I'm not a Fortune 500 though.

> But so it Python. For a very different definition of "good enough," i.e. unless you're working on a large codebase maintained by a large team for years, need high performance, or need deep low-overhead observability. So Java is "good enough" for a much wider selection of "serious" (large/mission-critical/long-lived/ high-performance) software. > And for specialized things, there are better choices available to me.…

Dropbox, instagram, google and youtube all were written in Python at some point. Languages don't scale, architectures do.

But even when the language became the bottleneck, they went the road of rust and go, not the road of java.

Again, not to say Java is not used by those companies with great success.

Re: Java Is Underhyped

#167
post #33

Earlier quoted context omitted.

I always refused to work with C++/Java, and I managed to get a job with Rust at FAANG. If I can do it, you can do it :P

Why would any reasonable person limit their choices based on a tool? Rust or Blast - whatever I really don’t care what language I’m using if it it doing the job. I use Java, Java Script, Go, Python, Scala when appropriate.

You just asked "Why would any reasonable person care what they spent half of their waking hours of their life doing?"

The fact that you don't care does not make everyone other than you not a reasonable person.

Frankly I don't see how any reasonable person could fail to develop some preferences, but I bet you would not like it if I called you unreasonable, or perhaps just unsophisticated.

Re: Java Is Underhyped

#168
post #121

For my use cases, Java has all the wrong compromises: - not high level enough to compete with Python/Ruby/JS/PHP, etc - not low level enough to compete with Rust/D/Nim/Zig - not specialized enough to compete with Erlang/R/Go/Julia - not opinionated enough to compete with Lisp/Haskell So why use Java ? It's good, it's fast, it's productive, it's well supported, battle tested and documented for decades with a huge pool…

Python is generally less performant. Go has a smaller ecosystem. IMHO, YMMV etc.

You're right, but:

* performance is not really an issue for most software ("97% of the time, premature optimization is evil"). A well designed software doesn't suffer from performance issues with current computer performance, unless you do AI or bleeding edge graphics or science simulation.

* there are ways to speed up performance sensitive parts with something else than java, for example by using C/C++, would it be with a python module or cython. Not ideal, but generally you gain performance by adapting your design, not by changing languages. A garbage collector is rarely predictable, hence java is not a good fit for performance.

* I remember playing minecraft with friends, and the server was regularly crashing because it was out of memory, or something like that.

Re: Java Is Underhyped

#169
post #112

> Java is fun to write, productive What the hell? I don't think we have the same definition for any of these words. I know Java has changed quite a bit since Java 8 (Java 9 being the last version I used professionally before switching completely to Go), but I just can't write Java again, it's physical. When I want to try a new Java feature and think about writing the scaffolding code, my stomach actually hurts. Not t…

Installing a JDK is trivial. What do you mean by "configure" a JDK? You mean tell your IDE it exists? Wow.

Re: Java Is Underhyped

#170

Earlier quoted context omitted.

Kotlin solves most of the problems for us while leveraging the benefits of the JVM.

What's the state of server-side Kotlin now, is it usable and what kind of JVM are cloud hosts running it on? Kotlin seems like one of the best languages out there.

We use it in production with spring boot and deploy a single jar file on azure. Works pretty well
Post reply on HN