At IBM we're pretty excited about a prototype capability we've added to our J9 JVM called PackedObjects. You can read more about from some of the links at the end.
In a nutshell it designed to allow better control over the layout and form of fields within a Object. Why is this exciting? well there are bunch of reasons but I'll give you just one that may appeal: better, faster, easier inter-op with native code. Would you like to be able to really share data with native applications? No copying, no special, archane APIs. Just Java classes on one side, C style structures on the other and a lot less JNI. We think this enhancement to Java is pretty cool of course but we'd like to get your views
Even if you don't directly work with JNI the platform level benefits are potentially enormous. Faster interoperability with any native code means faster networking performance, faster I/O and faster graphics rendering. Ever tried to write a 3D game in Java and been bottlenecked by OpenGL interoperability? PackedObjects can eliminate the performance pain point.
Whenever a new programming challenge appears there is almost always a call to add tailored support into the Java language. Almost always that's a bad idea.
Language changes are forever and as such need careful thought and wide debate. Unfortunately discussions about language enhancements frequently end up focusing on syntax over substance.
How do you focus the debate on the underlying substance? How do you identify the fundamental concepts that benefit enough Java users that a language change is justified? How about a hands-on, warts-and-all-prototype hackday?
We'll cover the challenges that inspired the PackedObject design and examine some of the related alternatives proposed by the community - such as ValueTypes , C# style structs etc. We'll help you hack with our current prototype implementation and you'll help us and the OpenJDK community progress towards a common solution.
If you're interested in the process of evolving programming language design, want to see how to make your native interop faster or just want to understand more about PackedObjects this day is for you.
If you want to get your hands on the prototype right now you can - its shipped with the IBM Java 8 beta. (Linux IA-32 only unless you have a mainframe at home)