Live data from Hacker News

Java Is Underhyped

jackson.sh

551–560 of 808 posts

Re: Java Is Underhyped

#551
post #406

Earlier quoted context omitted.

"[C#] was always designed to be a Java clone" "Initially" would be somewhat closer to the truth than "always".

It's still pretty damn similar and they continually add new features to match the other, keeping up with the joneses.

It's mostly Java that's playing catch-up, so arguably it's Java "cloning" C# rather than the other way round, and it's been that way for years now.

Re: Java Is Underhyped

#552

Earlier quoted context omitted.

You use Java because it is low risk. I think it might be lower risk than any other language in terms of design patterns, hiring, library support, run-time surprises, etc. The language itself isn’t great though. Java solutions tend to be bloated and make it hard to decipher the underlying domain logic. I certainly wouldn’t pick Java for a small team of experienced developers.

I agree that Java is low risk from a manager responsibility perspective: nobody has been fired for choosing it for a long time. Now, from a project success perspective, I think it's not. I've seen a lot of Java projects fail, over engineered, full of spaghetti code, riddle with inscrutable abstraction, stuck in a glue of badly designed architecture that has been fossilized by the type system. I'd say from a project r…

Well, law of big numbers. Java is used everywhere. For every failed Java project, there is many successful one as well. And honestly, chances are that team would have failed in any other language as well.

Re: Java Is Underhyped

#553

There is no greater sin than to say something positive about Java on the orange site... IMO Java and C# and other compiled languages have the opposite problem with languages like python and JavaScript (I love all these languages btw). It’s easy to get up and running quickly with the latter. It’s not until your project has grown in complexity when the formers value becomes apparent. This is similar to mongodb vs say,…

As someone currently trying to juggle a massive, extremely complex Python project, our code looks very Java-esque just so we can actually understand what's going on. Java/C# absolutely have a place, but the heavy startup mentality here will always lean towards "whatever lets me pump out my crapware and go to market fastest". Startups aren't known for producing well maintainable code (not that you can't make maintaina…

Agree. It’s YAGNI until you YNI. ;p

Re: Java Is Underhyped

#554

Earlier quoted context omitted.

> Java's type system is so weak that it doesn't even prevent null from inhabiting almost every type. "So weak"? You do realize that this is basically where every language was less than a decade ago?

I like Java, but that's weak argument. We're in 2021, not decade ago.

And java has excellent static analysis, so if you want to you can prevent every single npe.

Re: Java Is Underhyped

#556

Java language gets its hate from its historical lack of focus on developer happiness. Beyond the language, the crufty experience with Java Bean, Java EE, WebSphere era all contributed to this. Thankfully, Java ecosystem has learnt from other languages and frameworks and with Java 8 onwards has addressed some of major pain points For e.g. lambda, streams, vars, text blocks, records etc, On the other hand, Shopify and…

> Considering these, I find Java to be a very good option to build stable enterprise applications compared to Ruby or Python.

Which is honestly why I think Typescript with Node on the backend is an excellent choice for many enterprises.

Re: Java Is Underhyped

#557
post #136

Earlier quoted context omitted.

Python projects that start to grow has a tendency to become hard to manage in a way that I have not seen in Java at all. Java is like you say not the greatest at anything but it is also not the worst at anything. Its great for projects where the you don't know what you should optimize for or don't care. If java is to boring maybe kotlin is the way to go. I really like kotlin and in my personal experience the only dow…

Python is good for quick projects, but if you're writing a project with more than 2000 lines of python something's going wrong. The apparent ease of python becomes an unmanageable web of complexity. In the end you woukd have less headaches if you just used a proper statically typed language.

Dropbox, Youtube, Google, Instagram and NASA tell a different story.

And me too.

Scaling a Python project complexity is not harder than scaling Java, the things you have to be careful about are just different.

Re: Java Is Underhyped

#558

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…

There's a lot of very reliable distributed systems written in java. But if something goes wrong, and it will, because distributed systems, you will not want to debug it. And because java is very enterprisey, distributed java developers are expensive. You're competing with faang salaries.

What other platform would you want to debug? There is basically no better one then the JVM when it comes to profiling. Exceptions are detailed with stack traces, you can even attach a profiler in production and let it run there because of the negligible overhead with flight recorder. Hell, there are even debuggers that can run your program backwards.

Re: Java Is Underhyped

#559

Earlier quoted context omitted.

Kotlin could he better, but doesn't go all the way. Without HKTs and implicit injection, Java is going to eat its lunch. Java already has records, type inference, parametric null safety with Optional, Loom provides coroutines, vavr and streaming apis have given us theabilitytodo FP... what's left as a unique feature? Kotlin will survive because it was picked for Android to avoid copyright issues. But the difference b…

Could you clarify the point on Android and copyright issues? At least at the time in 2017 when Google blessed Kotlin as an officially supported language, it seemed like the reasoning was Kotlin was far more ergonomic than Java. How does copyright come into this?

Oracle suited Google for copying the APIs (not the implementation) of the Java standard APIs. It all started in 2010 [0]

Kotlin was Google's backup if the suit went Oracle's way.

[0] https://en.wikipedia.org/wiki/Google_LLC_v._Oracle_America,_....

Re: Java Is Underhyped

#560
post #350

Earlier quoted context omitted.

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.

> Java is orders of magnitude faster than Python for code that doesn't spend all of its time waiting for IO. It's hard to separate the absolute performance of Java the language from Java the culture where inefficient patterns or attempts to implement dynamic behaviors in some framework code defeat the JIT (not to mention the benefits of type-checking). If you have a team which cares, it should be faster but the avera…

Well, that same team would have trouble even writing complex python apps as well, without types

(yeah I know it has type hints now)

Post reply on HN