3 ms·
I 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.
by adgjlsfhk1 5y ago
I 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.