#ProjectValhalla is all about performance? That's what I thought: It gives us user-defined primitives with the resulting great performance and that's mostly it. But in this conversation, I learned how it is much more than that: It aims to overcome Java's original sin. 🧵 1/9
#ProjectValhalla is all about performance? That's what I thought: It gives us user-defined primitives with the resulting great performance and that's mostly it. But in this conversation, I learned how it is much more than that: It aims to overcome Java's original sin. 🧵 1/9
Says @BrianGoetz: "The original sin of Java is primitives and references. These two kinds of types are different in every way. [storage, null, extensibility] If you imagine a 9-dimensional space for your type system, these two things inhabit diametrically opposed corners." 2/9
"This was a necessary evil in 1995. [...] It was important that arithmetic actually be fast in Java, otherwise no one would take it seriously." But then the gap between primitives and references made its way into the generic type system and grew wider. 3/9