Live data from Hacker News

The Road to Valhalla

cr.openjdk.java.net

71–80 of 82 posts

Re: The Road to Valhalla

#71
post #66

Earlier quoted context omitted.

Are you confusing IDE support with language support on a given runtime?

If you want me to talk about language support on a given runtime instead, try to use F# on .NET Native, or VB.NET on Blazor.

.NET Native is a separate compiler and runtime than the one being discussed afaik

And Blazor is part of a web framework that doesn't support VB.Net, not the underlying runtime.

Re: The Road to Valhalla

#72
post #70

Earlier quoted context omitted.

I can't believe you work on the OpenJDK and are trying to intentionally confuse the JVM and Java. tsk tsk.

Well then, I guess I'm going to have to learn to live with your disbelief as well. Java is the name of both a software platform as well as a programming language for that platform. Languages that target that platform are often called "JVM languages," but really they make use of almost all of Java (the platform) rather than just the JVM (although that degree varies: Kotlin makes use of the platform almost as much as t…

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

Re: The Road to Valhalla

#73
post #66

Earlier quoted context omitted.

If you want me to talk about language support on a given runtime instead, try to use F# on .NET Native, or VB.NET on Blazor.

.NET Native is a separate compiler and runtime than the one being discussed afaik And Blazor is part of a web framework that doesn't support VB.Net, not the underlying runtime.

Except all those runtimes are supposed to run the same MSIL.

Or if you prefer a more recent example, .NET Core only supports C++ on Windows.

Re: The Road to Valhalla

#74
post #70

Earlier quoted context omitted.

Well then, I guess I'm going to have to learn to live with your disbelief as well. Java is the name of both a software platform as well as a programming language for that platform. Languages that target that platform are often called "JVM languages," but really they make use of almost all of Java (the platform) rather than just the JVM (although that degree varies: Kotlin makes use of the platform almost as much as t…

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…

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.

Re: The Road to Valhalla

#75
post #16

Tangentially related questions to generics, anyone think java will ever get higher kinded types? It would be super useful to have a better way of expressing higher level abstractions.

Java will not get HKTs in yours and my lifetime. What might get HKTs is Kotlin. There's a proposal brought forward by the Arrow people that has attracted a lot of attention. https://github.com/Kotlin/KEEP/pull/87 If if that does not succeed, the Arrow folks are working on a meta compiler (think template Haskell but with IDE support) that should get you HKTs and union types. https://github.com/arrow-kt/arrow-meta Rega…

Yeah Arrow is pretty great. There's a similar work around for HKT in java: https://github.com/highj/highj.

I would much rather some native syntax like K where K is some generic though.

Re: The Road to Valhalla

#76
post #42

Earlier quoted context omitted.

Whether that's "wrong" or "right" is a matter of opinion. But it's hard to argue with the fact that many more people seem to prefer Java's approach to Microsoft's. As to .NET's "insane under the hood" innovation, the platform is similar to what Java was about 10-15 years ago in terms of GC, JIT compilation and monitoring. .NET prefers changing the language, while Java prefers changing the platform. The two just have…

Haha, the way you just handwave away the last few years of .NET/CLR/Roslyn/DLR changes means I've seen this is a waste of my time and will stop checking for replies But uh yeah... what percentage of Java developers are still on Java EE 7, 8? The "business advantage" is in things not changing. If you compare languages by business advantage then Java 1 wins because "we haven't had to waste money upgrading since the 90s…

> But uh yeah... what percentage of Java developers are still on Java EE 7, 8?

I hope around 90% or more, because Java EE 8 is the latest version of Java EE.

Re: The Road to Valhalla

#77
post #74

Earlier quoted context omitted.

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…

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…

How you managed to get from my original point to this rambling screed is masterful, I'll give you that much!

Re: The Road to Valhalla

#78
post #74

Earlier quoted context omitted.

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…

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 ¯\_(ツ)_/¯

Re: The Road to Valhalla

#79

Earlier quoted context omitted.

While that is interesting to hear, is there a single book that brings someone who hasn't used Java in the last 5 years upto speed, like the book Bjarne Stroustroup's 'A tour of c++' does for c++.

There might be, but unfortunately I don't know it. I learnt Java initially from the first edition of Just Java, read from various other sources about the 1.5 and 1.6 additions it didn't cover, and then learned new features from OpenJDK proposals from 1.7 onwards as they were released. The biggest impact of the 5 years for working developers has probably been: * Streaming API and lambdas allowing usual `map`/`filter`/…

Very informative summary, thank you.

Re: The Road to Valhalla

#80
post #67

Earlier quoted context omitted.

> something that Microsoft has never been good at Well, you're certainly entitled to that opinion :) As I said, I encourage you to explore .NET Core and its recent advances, especially now that the big runtime improvements made in recent years have proliferated throughout the standard library and new language features. While it's fair (and correct) to say that the Java runtime is ahead due to many years of focused im…

I believe you re .NET Core, but I think that Microsoft shifting their focus to a backward-incompatible development platform (not Windows, on which they have a very good compatibility record) every five years or so is more than just opinion. I think that their record on that front speaks for itself. If you were a developer who always uses the current flagship MS development platform to develop a piece of software that…

That may be your impression. I'm only speaking from experience here, where we have done things like investigate issues with the first public release of a compiler for a week to ensure behavior is still correct when used in a newer environment.

But it's important to distinguish where we are now - .NET Core being explicitly cross-platform, vendor neutral, and OSS - from where .NET was. .NET Core is not tied to a specific product or initiative (e.g., Silverlight) that could go down due to other market forces and take that flavor of .NET with it. This is the position that Java has been in for a long time. Perhaps you or others you've known have been burned by buying into a Windows Mobile Flavor of the Month only to see it canned a few years later, so it's not unreasonable to think that the same could happen here. But at the same time, .NET Core has been going for 5 years now, and over that span of time it's only become more compatible with existing APIs and runtime environments, not less.

Post reply on HN