4 ms·
I really think that Oracle does a great job with Java! It looks like they'd have a pretty clear roadmap with what is really important for Java in the long run.
by cryptos 5y ago
I really think that Oracle does a great job with Java! It looks like they'd have a pretty clear roadmap with what is really important for Java in the long run. Just think about virtual threads (project Loom), or values types (project Valhalla) or GraalVM. They invested many man years in each of it and take care of considering all relevant aspects. If it is done you can trust to have a proper solution. That is the kind of technology you want to build products on!
- lichtenberger 5y agoYes,the new memory model for instance for "immutable classes" for instance will be one of the biggest improvements for some applications as you can finally build cache line optimized data structures, which are for instance nowadays common in in-memory database systems. I think first considerations regarding this have been made already 10 years ago. The new upcoming (or even already in preview) language and platform features also support each other very well. I think they are heading in a clear direction with the different projects.
- adgjlsfhk1 5y agoI honestly can't tell if this is a joke or not. Valhalla is one where it was an obvious deficiency from Java 1.0, that has taken oracle about 2 decades to fix. for comparison, Microsoft was able to fix this by making "our version of Java but not completely broken" (aka C#) in less than half the time.
- pjmlp 5y agoExcept that they fully didn't, since C# 7.0, Microsoft keeps adding the System C# features into C# as means to make it more competitive with C++ workloads. Span, safe stackalloc, readonly structs, bittlable structs, native delegates,....
- cogman10 5y agoOne of the biggest advantages of Java/JVM is backwards compatibility. The reason Oracle is taking so long to do Valhalla is they are doing it WHILE being able to run Java 1.0 jars. Microsoft "fixed" things by saying "All your 2.0 net code is broken in 3.0".
- pjmlp 5y agoAnd they did it again with .NET Native and now the Framework to Core migration.
- merb 5y agowell that is not true. no code was ever broken with .net 2.0, .net 3.0, .net 3.5, etc. .net was just mostly binary compatible, most often source compatible, but basic syntax never broke, the api/runtime often broke, but that is a different matter. i.e. why .net core broke a lot of stuff was not syntax it was most often that libraries changed/were missing. java's runtime was mostly source/binary compatible compared to .net, but thats why a ton of stuff was never used, like http client/serve lul..
- pjmlp 5y agoOther than variable scope semantics of foreach. A programming language is composed by grammar, semantics and standard library, it doesn't matter at what level it breaks, if the code or binaries cannot be brought forward without changes. Since Oracle decided to actually remove parts of Java, they certainly heard from people using that ton of stuff that no one uses.
- samus 5y agoI don't get where you get the two decades from. Oracle acquired Sun in 2012. The model for Java was Smalltalk, but in Smalltalk everything was an object => difficult to optimize. Primitive types were introduced in Java to optimize computation with those basic datatypes. The state of things was fine, until Generics were introduced. Generics preserved backwards compatibility, but widened the division between object and primitive types. This division was fine, until it started to matter that Java can't be used for high-performance applications. For enterprise application, this gap has never really mattered.
- specialist 5y agoProject Loom is a game changer. At least as big as Java's original JVM w/ GC combo. (Ya, ya, ya Java wasn't the first. But somehow Java 1.0 got mindshare. And this time Java's got a massive installed base and ecosystem, greatly increasing the likelihood for Project Loom's adoption.)
- cogman10 5y agoAgreed. IMO, Loom + a lot of the startup improvements will make Go somewhat obsolete compared to the JVM. The JVM developers have pretty quickly closed the gap. Where java was a poor container choice, it's become pretty nice.
- lenkite 5y agoIf only they hadn't sued Google, Java would still have been the pre-eminent language for Android development. Sadly Android is stuck at legacy Java 8 permanently now. So, modern Java is stuck as a server-side language with dozens of competitors.
- exikyut 5y agoSo thaaaat's the reason for the all-in focus on Kotlin... ooohh. Where can I read more about the version freeze? :(
- lenkite 5y agoCovered in articles from earlier in the decade: https://in.pcmag.com/google-io/114595/google-is-moving-android-away-from-its-oracle-java-problems-with-kotlin https://in.pcmag.com/google-io/114595/google-is-moving-andro...
- mike_hearn 5y agoNo, Android has upgraded to Java 11: https://developer.android.com/studio/releases/gradle-plugin#java-11 https://developer.android.com/studio/releases/gradle-plugin#... ... which up until a few months ago was the last LTS. So they're fairly up to date by now.
- pjmlp 5y agoKind of, that is a subset of Java 11, don't expect everything that is on OpenJDK 11 LTS to work on Android.
- lenkite 5y agoMost of the libraries of Java 11 are not available. Basic stuff like the Java 11 HTTP client. Pseudo compatibility. And this only happened because the new Gradle needed Java 11. They just did enough to make the new Gradle work. Android Java will not pass the Java 11 test suite.
- 5y ago