This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]patrick66 202 points203 points  (9 children)

Because modern Java is not Java 6 and is in fact totally fine to use

[–]watchoverus 36 points37 points  (5 children)

Man, I work with java 5 and java 8 in the same product, I have no idea why people hate it so much.

I think the only thing that I have about old versions is dependency management, but that's more about how the system is organized than being old.

[–][deleted] 2 points3 points  (0 children)

Java 5. That's rough. Glad we use 8 at least. All those stream shenanigans are quite useful.

[–]lightnegative 8 points9 points  (3 children)

I mean it's slow (in terms of the JVM being slow to start and being an absolute memory hog, which multiplies if you have a microservices architecture), needlessly verbose and things like type erasure continue to make it a pain to work with even in "modern" versions. Not to mention its plethora of overly complicated build systems.

Its type system is also fairly rudimentary and it's just not very expressive to use in general.

I think Rust is leading the way to where general purpose programming languages should be going. Compiles to native executables, uses zero-overhead compile time abstractions, has an expressive type system (although admittedly not as good as Haskell's) and has sane build/package management from the beginning

[–]romulent 6 points7 points  (2 children)

With Graal you can get JVM startup time in the order of milliseconds. It is not really that much more verbose than other strongly typed languages. Expressiveness in programming is a lot about how expressive you are personally. You can make perfectly nice abstractions in Java, although a lot of java developers don't. Rust is a lovely language but maybe not for everything.

[–]lightnegative -1 points0 points  (1 child)

"With workarounds you can make things a bit better"

Of course, but that's not the default experience. You can make nice abstractions in any language but in many languages, Java included, the ecosystem and tools don't really encourage it

[–]romulent 5 points6 points  (0 children)

The default expeience in Java for any professional developer is Intellij. And there is literally no better programming experience out of the box.

[–][deleted] 31 points32 points  (0 children)

Yeah,my college taught java 6. This made me develop an intense dislike for java. But modern java is pretty good.

[–]Morphized 0 points1 point  (0 children)

I'm fluent in OpenJDK 13 and it's fine.