4 ms·
I think much of the maligning Java gets is either due to people looking at badly written Java (2k LOC classes, factories of factories of factories, 15 arg metho
by Communitivity 4y ago
I think much of the maligning Java gets is either due to people looking at badly written Java (2k LOC classes, factories of factories of factories, 15 arg methods, import * everywhere, etc.), or claims in error because they are not based on modern Java (claiming bad parallelism a la Hensen, citing a lack of modules, noting no functional support).
I think Java is a good language if your problem space is ok with the GC and some other quirks.
The problem space I've been in has issues with GC, so C++ or Rust are the main choices there (Go too, but not my preference).
- ComputerGuru 4y agoJava has long been crippled beyond the regular GC limitations by lack of value types, but that’s finally, finally going away.
- dboreham 4y agoExplains why there are no production Java applications...
- programmer_dude 4y agoFTFY... Explains why there are no high performance production Java applications...
- abraxas 4y agoYeah, other than Kafka, Spark, Cassandra, Flink, Hadoop, Elasticsearch what has Java ever done for us!
- reverend_gonzo 4y agoGiven there are hft firms built on Java…
- StevePerkins 4y agoI read comments like this all the time on HN and Reddit. But it's hard for me to separate real professional experience at day jobs, from hobbyist wishful thinking in personal side projects. All I know is that I attend a lot of Java conferences and meetups, and I'm STILL waiting to encounter a flesh-and-blood human in real life whose employer really wavers between Java and Rust. That's like choosing between a Humvee and a submarine, their optimal problem spaces barely overlap.
- coldtea 4y ago>That's like choosing between a Humvee and a submarine, their optimal problem spaces barely overlap. You'd be surprised. For a lot of stuff Rust is a good fit, aside drivers and OSes, Java is too. There are succesful full text search engines written in Java (Lucene, and Elasticsearch on top of it), there are succesful event streaming platforms written in Java (Kafka), there are succesful distributed data processing tools written in Java (Hadoop, Spark), databases (Cassandra), and very very high performance trading engines (LMAX), very high performing servers (rapidoid, smart-servlet), and other such things besides, all categories of which have been quite big domains for C/C++ (and thus something like Rust).
- BoorishBears 4y agoSeeing a company (as opposed to a person) choose between Java and Rust would paint a very bleak picture for their future. To me it's an indication that programmers are getting to run wild past the technical domain, after all trying to hire for a Java codebase vs a Rust codebase is enough to kill a company depending on the space due to salary expectations and availability alone.
- Communitivity 4y agoWhere I work some teams are using Java, and some are just starting to use Rust. Different problem spaces entirely though, as you said. I've seen Java used here for ETL work, Modeling & Sim work, web apps, and Android. I've seen Rust on two projects, both were real-time or near-real-time efforts. The competition I am starting to see is between C++ and Rust, with the few teams looking at Rust loving it. I did recently help write a RFP response that noted software will be written in C++ and Rust, and the RFP was awarded to us. I am in a different world though, as I am a contractor for the DOD. It's more like a lot of small to medium sized companies than one big company, which is why some groups can use Java and others C++ and others Rust. I have the same problem of differentiating between hobbyists and professional experience, both on HN and when interviewing. I had someone tell me they knew Java, then found out they had done maybe 5 months of Java work and didn't know some of the most basic things. As for myself, in terms of writing professional software for clients, I've done the following, in order of amounts worked: Java, C++, Python, Javascript, Erlang, R, Ruby, Clojure, C, Scala, and C#. I've done Rust and Elixir in personal projects, but not yet for clients. I plan to transition to a full-time Rust project in the coming years.