Live data from Hacker News

Java Is Underhyped

jackson.sh

711–720 of 808 posts

Re: Java Is Underhyped

#711
post #642
post #411

Earlier quoted context omitted.

R is an analysis tool. You don't write software in R.

Well, maybe _you_ don't write software in R. Others can write a pretty capable server[0] using just that. [0] https://github.com/opencpu/opencpu/tree/master/R

Of course you can write anything in R but that doesn't mean it will be possible to maintain the codebase for the next 10 maybe 20 years including dev team changes.

In other words R is wrong tool to use for building the software just from maintainability standpoint.

Re: Java Is Underhyped

#712
post #184

Earlier quoted context omitted.

Where is Rust AWT? Not to mention Swing, JavaFX, or even an whole mobile ecosystem.

To be fair, even people deep in the Java ecosystem don't like its desktop application/GUI support. Its only saving grace is that all other cross-platform GUI systems also suck, and if you're doing everything else in Java it might be the path of least resistance.

Only the people that are too lazy to actually learn how to do it properly,

"Filthy Rich Clients" by the nowadays Android UI architects

http://filthyrichclients.org/

"Swing Hacks: Tips and Tools for Killer GUIs" by Joshua Marinacci, well know in the UI research community

https://www.amazon.de/dp/0596009070

And then commercial libraries like

http://www.jgoodies.com/

Re: Java Is Underhyped

#713
post #491

Earlier quoted context omitted.

I'm talking about a maven project I have to use sometimes at work. Let me walk you through all the shit I had to do: - Install and set the right java version system-wide - Copy some config files for the project system-wide (granted, this is not java specific, but still) - Click in some IDE menu to enable some build settings - Click in some IDE menu to install some "Lombok" plugin - Click in some IDE menu to select th…

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.…

> The Java installation is a 1-time think. It's also a quick google away. I see this complaint a lot, I never understand it. It's plain and simple bikeshedding: someone complaining about a 1-time task that takes 5 minutes in total.

I frequently find that the particular constellation of build tooling and libraries particular projects have requires a particular version of the jvm and all the environment variables set up correctly. In some other languages there is widely used tooling to manage the install and use of the appropriate platform version for the project.

If you're working with a variety of projects, fiddling with the installed jvm and java_home and friends is not a one time thing.

Re: Java Is Underhyped

#714

Earlier quoted context omitted.

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…

IMO it's the other way around. Java has some of the best IDE's around so everyone uses them. You can code in notepad and compile with maven but why would you? With Rust you code in VIM because there's nothing better. Improving Rust IDE's has been one of the teams big focuses for years. Everyone codes in random text editors because there's no amazing IDE.

With rust yoy don't need to constantly generate code. Vim is just perfect, if you have rust-analyze you get inline errors, code completion, jump to definition, autoimport, autoformat...

You don't need to constantly "extract method", move to class, generate all these mountains of classes by rightclick. This says a lot about the language.

But the main point is that with rust it actually just works: there is one way to set global toolchain and per project/dir. You're not required to also click through a million menus and dialogs and copypaste stuff and sync and rebuild and restart to get the editor barely working.

Re: Java Is Underhyped

#715

Earlier quoted context omitted.

> with IntelliJ 99% of what you described is auto-configured It is not, that's what I'm saying. And I don't understand why, if IntelliJ is the de-facto IDE. I'm sure that a fresh project is a one-click import, but an average project that isn't fresh anymore, always have similar IDE-setup-magic problems. At least in my experience over the years.

I code in Java, Scala and Python using an IDE just because I like to not remember the documentation to the code. I know plenty of people who don't use a formal IDE. This "I don't use an IDE" is a stupid flex.

Me too, that's why I have vim setup with language-servers. I get inline type info, code completion and so on.

It's not a flex, simply a matter of preference: I find using the mouse too irritating, others prefer it because it's simpler.

But that's not my gripe, my gripe is that setting up IntelliJ, the one defacto standard IDE to actually work is some voodoo ritual of a dozen steps and restarts and so on.

Re: Java Is Underhyped

#716
post #611

Earlier quoted context omitted.

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.

But this happened to me every time I had to use any java project over the years. Maybe I'm just unlucky.

Re: Java Is Underhyped

#717
post #351

Earlier quoted context omitted.

Not at all, I though your point was how Rust and Go are a much better option. > 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. So given that, I am curious where are those GUI alternatives with the required perfomance in Go and Rust.

So you are in the very niche use case where: - you need a GUI - you need perf beyond what Python is capable and you identified it clearly in advance - you can't use numpy / multiprocessing / cython, pypy or they won't give you the perf you need - you can't find a main hotpath you can optimize with a 5 lines c or rust extension and write 99.99% of your app in python. Or you don't want to bother. If you ever find yours…

No, he is in need of writing production quality software together with his medium to big sized dev team and he doesn't want to introduce maintenance burden into his project 10 years from now. Software will get improved during it's lifetime and not overwritten from scratch every 2 years.

Re: Java Is Underhyped

#718
post #635
post #549

Earlier quoted context omitted.

> This is sort of true but it misses the aspect which makes Java hard to maintain The boilerplate syntax you talk about comes from like java 1.4. Modern Java is quite expressive with streams and lambdas. If one does employ the Java Beans convention than yeah, he/she has to autogenerate a few getters setters, but those don’t occlude the actual logic. And frankly, empirically, Java is anything but hard to maintain. You…

> The boilerplate syntax you talk about comes from like java 1.4. I was thinking about things I've recently seen in new Java 15 code, so no. There are lots of old APIs in the Java language and popular libraries, and while things like streams are quite powerful, they're far from universal. I still see developers cranking out code which has to do what is built-in in other languages. As a simple example, not having mult…

Yeah, multiple returns does come up from time to time, but nowadays with records you at least have named tuples in with one line declarations. And if you don’t save the return type, I’m sure the escape analysis will get what you are doing, so it won’t be heap allocated.

But I do agree that there is space for improvements here.

Re: Java Is Underhyped

#719

Earlier quoted context omitted.

> Python is older than Java, well supported WELL SUPPORTED???? Have you ever coded a real thing in python? I'm getting "Warning, no longer supported" console messages in all my basic well established tools and libraries written in python because a guy that lives in a world of academics and theory and not in a world of business and delivery dates decided that python3 was not going to have backwards compatibility with…

Dropbox, Instagram, Google, Youtube, reddit and Nasa all have been heavily Python powered for a decade. I myself have coded a streaming platform getting half a million user every day in Python. Baring the CDN to store the content, it runs on 2 servers, one for the DB. So real things get done in Python pretty well.

In case of the Dropbox please read this:

_But as the company grew, new engineers who joined couldn’t understand the code. Clever code is usually short and cryptic, written by and for the individual who came up with it, but is hard for anyone else to understand—and nearly impossible to maintain. Guido called this “cowboy coding culture”. He recognized its value in our early stages of trying to implement things quickly, but knew it wouldn’t be sustainable over time, so he decided to speak up in his own quiet way._

And now they'll have to rewrite everything in programming languages where maintenance is not a burden.

[0] https://blog.dropbox.com/topics/company/thank-you--guido

Re: Java Is Underhyped

#720
post #271
post #2

Thanks for the two upvotes so far! Please feel free to leave criticism of the article or my writing; I'm trying to strengthen my composition muscle.

One thing to bear in mind as you read the comments is that the great majority of people commenting clearly do not have good up-to-date experience of working with Java. They're arguing against the Java that they used a decade ago, or perhaps even just repeating flames they read a decade ago.

The INCREDIBLY VAST majority of people that are working with Java/JVM for a living most likely have never even heard about HN. And yes, there are countless shitty projects in maintenance mode maybe even written in pre-1.5 Java. If I were stuck in such projects for years I would also be super-bitter about Java
Post reply on HN