Live data from Hacker News

Java Is Underhyped

jackson.sh

611–620 of 808 posts

Re: Java Is Underhyped

#611

Earlier quoted context omitted.

I have done 10+ years of Java development and 1 year of Python. And I disagree, Java packaging is better. You can package all your dependencies in a fat jar like Spring boot does and you only need to run it with java -jar lib.jar and you are good to go. Dependency management is a mess in the Python world and my number 1 complaint. You have pip, pipenv, poetry, anaconda, to manage your 3rd parties. And if you want to…

Great, but you will actually want to write some code, so you have to do this insane IDE setup clickfest. I am not saying Python's packaging is any good, it sucks. But you can't realistically ignore Java's IDE shitshow.

It’s pretty much an import project and done. If not, then someone really fcked up that build file.

Re: Java Is Underhyped

#612
post #381

This post from "an ignorant computer science undergrad" is pretty silly, so allow me to get a little silly in response. I think if Java's new features are an attempt to woo new developers, Java comes off pretty tragically, like the old guy in the club, trying stay relevant by showing off how it just got up to date with ideas that hit the mainstream ten years ago. Whoa, check out these record classes! Fresh stuff over…

Java development scales, it has pretty good performance, and great tooling. I agree that it's underhyped. You can pick a lot of other languages, but no other language is as broad as Java. Python reads like a dream but has useless perf and threading. Javascript (Node et al) has the I/O concurrency but no clear solution to threading, and is bad at number crunching. C++ has good perf but is overly complicated, compiles…

> great tooling

Something I underappreciated until I delved deeper into other languages is how much observability the JVM gives you into how an application is running. Something like VisualVM makes it incredibly easy to see what threads are running, in what state, etc.

There's a class of things where the overhead of a VM (like the JVM, not VMWare) doesn't make sense (kernels, drivers), and startup time can be an issue, but for code where pretty good performance is enough, running in a VM is an asset to me.

Re: Java Is Underhyped

#613
post #588

Java (and JVM) sure has its advantages. And I enthusiastically advocated it in the nineties, when no one seemed to see its strengths. It was simple, performed well (other than GUI and classloading sometimes took a minute) and was very portable. I even wrote some demos in it in the late nineties to show it can actually do 60 Hz realtime graphics. Over time, the ecosystem got pretty strong. JVM improved and the perform…

Actually, the JVM uses comparably less power than other high level languages. And frankly, you simply can’t write all the software in use in low level languages. Yeah, it is theoretically possible but not feasible

I agree on both counts, but my point still stands that having a high level language with low power consumption would be great.

Don't ask me how to create one. But perhaps someone who sees this has some ideas that gets us started on this path. You never know.

Power consumption doesn't get enough attention from software developers.

Re: Java Is Underhyped

#614
post #373

Earlier quoted context omitted.

> I know you will say, this is all fault of whoever made this crap project It is. There's really no excuse for that. If it's been similar every time then you've worked on crap every time. Building a java project should be (and is on projects I work on) as easy as installing a jvm and running either maven or gradle to build it. End of story. "Install some lombok plugin" is only necessary if you want the IDE to underst…

No offense, but regardless of how right you might be, you come off as a bit of a condescending asshole. Like "Oh, you don't know that there's a more efficient way to do things? There can't possibly be any explanation other than you're literal human garbage and presumably have brain damage!". Come on, get off your high horse.

I'm really not on my high horse here, if you have a team working on a java project that's that hard to build, they're doing it wrong. Doesn't even matter what the language is really.

So "no offense", but shove it.

Re: Java Is Underhyped

#615
post #491

Earlier quoted context omitted.

I've interacted to a ton of Java projects. And with a ton of various other commercial and Open Source projects. In my experience (sample size of hundreds of projects), Maven projects are >, on average, easier to build and manage than most other languages. The repo structure is standardized, the build cycle is standardized, the built packages are always in the same place, etc. The Java installation is a 1-time think.…

Well Java is arguably one of the most IDE-reliant mainstream languages. It's completely unusable and unergonomic without the myriad of constant code generation and fixing as you write. Treating the IDE like a separate problem is not realistic with java. With e.g. Rust, I can use vim, vscode, whatever floats your boat. > no idea why you'd have to configure "getting the actual logs"? Some genius java logging library, I…

> Well Java is arguably one of the most IDE-reliant mainstream languages. It's completely unusable and unergonomic without the myriad of constant code generation and fixing as you write.

True, but with IntelliJ 99% of what you wrote is auto-configured.

Eclipse needs a bit of hand-holding, but almost everything you described is due to project configuration.

> Some genius java logging library, I can only guess.

That's your problem, you're assuming that Java is dumb and its libraries are dumb. They're not. I'm reasonably sure that > mainstream Java logging libraries log to console by default.

The previous engineer must have been a marvel of a developer to manage to screw even that up.

What I'd say is: Java, especially older enterprise code, had a ton of over-engineered patterns. These are slowly fading away, except for Spring, and even Spring's simpler these days. Java also tends to have some low quality and a ton of average but unmotivated working devs on Java projects. So yeah, there's that ecosystem problem.

But for example, if you'd start a new project and you approach Java with an open mind, it's one of the most powerful and flexible techs available. And it's much more modern than the stereotypes imply.

Re: Java Is Underhyped

#616
post #509
post #493

Earlier quoted context omitted.

And what if you want/need to add dependencies? A lot of them.

Sure _then_ you might opt to use Maven or Gradle. My point is there are a wide variety of application types out there, not everything is a web application, not everything needs to use a complex build and dependency management system.

Yeah, but if you do know Maven, it scales down to small projects. The configuration for a simple project is trivial.

So just use Maven and save anyone coming after you a bunch of trouble when they have to extend your project ;-)

Re: Java Is Underhyped

#617

Earlier quoted context omitted.

I write software in Java. I can't stand python - too wishy-washy. But my main complaint about Python is trying to use someone else's software. Then it degenerates into a maze of twisty little passages of trying to install the correct set of dependencies, not knowing where those files are installed (which makes it difficult on a cluster, as you may need to do the install on every node separately). Then you try using p…

> main complaint about Python is trying to use someone else's software. Then it degenerates into a maze of twisty little passages of trying to install the correct set of dependencies, not knowing where those files are installed Java is far worse on this front. Let's take a look at JEE or Spring - The entire experience is akin to summoning a demon with waving reciting correct incantations in correct places while havin…

Well, it does considerably more things than a hello world python app. So at least compare it to Python’s full blown backend server with ORM and the like.

Re: Java Is Underhyped

#618
post #253

Earlier quoted context omitted.

This is a funny comparison, for sure. What is really going on here is that there isn't a " the Java website". There is no single organisation or project behind Java which could put such up a website. Similarly, where is the C++ website? The C website? java.com was originally the website aimed at end-users who need to install Java to use desktop applications written in Java. It looks like it's from 2010 because that's…

That's a good point, but the various Java JDK websites, intended for developers, really aren't any better. - https://www.oracle.com/java/technologies/javase-downloads.ht... - https://jdk.java.net/ - https://openjdk.java.net/

Is javadoc any better these days?

Re: Java Is Underhyped

#619

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.

Progressively slower development seems like a pretty massive risk these days, where not being able to chase a competitor's big feature can be the death knell to your company. Though it seems java in general attracts a culture of slow moving bureaucrats which doesn't necessarily translate into higher quality (in fact, I'd argue it translates into worse quality).

I highly doubt the progressively slower development claim.

Re: Java Is Underhyped

#620

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…

I almost considered using Java instead of Erlang for a project I started working on. For one, my mind is still stuck in trying to model systems in a very OOP way, and I was (am?) struggling with OTP. I figured I could pull in Akka to get some of the nice Erlang stuff. But Erlang was just such a good fit for this project. I wasn’t so huge on the Java version of Akka. I also briefly looked at Scala, but I avoid Scala f…

OpenJDK is basically the Java JDK. Oracle JDK is only a “fork” of it, but they have complete feature-parity. Oracle only provides paid support for current and older versions of OpenJDK (similarly to many other vendors)

So you can just install OpenJDK from a package manager, use the jlink tool and create your own small “JRE” that you want to bundle. Jpackage can create a platform native executable from that, that is either an installable exe, .deb, rpm or MacOS’s format (I forgot it’s name)

Post reply on HN