9k classes * 100-300 == 900k-2.7m LOC
Not TOO crazy for the most complete standard library ever developed, for a language meant from the beginning to take over enterprise business computing.
How many LOC are in whatever meme language is hype this year? Hell, I feel like I see nearly that many lines of console output, when I run NPM to pull in dependencies, lol.
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).
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.
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).
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.
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.
Java => Go
C++ => Rust
The Database and System software that was created in 2000s very much was based on Java. But modern, performant Database and System software is written in Go/C++.
I don't know how many people were working on that
but when developing standard library you do not really want to rush designs. You want to be very, very careful about it.
Here's a book about it from one of the most experienced people in API/Standard lib design on the planet
https://www.amazon.com/Framework-Design-Guidelines-Conventio...
https://docs.oracle.com/en/java/javase/17/docs/api/allclasse...
So if ~10k classes were really written in a year, then I can only assume that most of that was the compiler or virtual machine runtime (i.e. C++ code) rather than the standard library Java code.
Regardless of how anyone feels about "verbosity" or "design patterns" in Java application code, the underlying JDK is pretty inarguably one of the most solid and impressive pieces of tech ever developed. I'm not throwing any rocks at that codebase.
I agree, JVM is impressive.
Tell that to Haskell.
Also, I've seen some pretty gnarly use of String in Java.
It’s not the lines that take time; it’s getting the code to the “well-designed” state, double so (if not more) for an API.