Hacker News new | ask | show | jobs
by BoorishBears 2383 days ago
You're mangling the conversation and then trying to force an issue with the conversation you mangled... again.

Please show me where Github, Tiboe, or any other survey says "Java" instead of "Clojure" or any "JVM language".

That's what my comment was referring to (rather, a small part of it was and you latched onto the chance to derail the conversation to wax poetic about semantics again)

You're the only one trying to talk about a platform.

Github indexes a ".java" file with Java code as a Java language file and a ".clj" file with Clojure code as a Clojure language file.

Not a "java platform file".

1 comments

Java is the name of a language as well as the name of a platform that contains it, in addition to a VM, core libraries and a wide selection of tools, all as integrated but distinct components (those living in Britain will find such dual meanings familiar, even though they recognize they might be confusing to outsiders). You yourself have talked about "under the hood improvements" to C#, meaning the .NET platform, not just the C# language. The discussion of reified generics applies to the platform, not the language -- indeed, reification has hurt interop on .NET precisely because it occurs in the runtime (VM and standard libraries) rather than just the language -- and this very article about project Valhalla applies to both. Being languages that target Java (the platform), Kotlin and Scala would benefit from Valhalla just as much as the Java language. They would benefit not only from the changes to the JVM, but also from the relevant changes to the other parts of the Java platform that they rely on, like the core libraries and serviceability tools.

Now, I don't mind at all you calling the Java platform "the JVM," as many do, but using the more accurate terminology does not distract from the discussion, even though the terminology in itself is not very important. It serves to highlight Java's design and strategy from its inception, as you can see in the video I linked to: the intention and strategy all along have been to have a platform made of integrated but distinct components, with a state-of-the-art VM and a conservative language. To this day, the Java VM is state-of-the-art while the Java language is intentionally conservative. .NET's design philosophy and strategy are just different, also intentionally so. To ignore all that is to ignore how Java's designers see it and maintain it, and misses the point of what Java is. It also misses the central elements of Java's strategy, which has made it so successful.

How you managed to get from my original point to this rambling screed is masterful, I'll give you that much!
Your original point was something about how you don't like Java's erased generics (and general language evolution). I explained how they fit in with, and, indeed, the best choice for Java's design philosophy that, despite being drastically different from .NET's has proven exceptionally successful -- namely one based on a platform made of several integrated but very much distinct components, with a fast-innovating state-of-the-art VM and a slow-innovating conservative language. I think it was rather straightforward but if you've found it masterful ¯\_(ツ)_/¯