Java has come a long way. A very long way. And it carries with it all the "junk" from early day design decisions. One thing that has been regretted time and again is the fact that every object (potentially) contains a monitor. This is hardly ever necessary and this flaw was corrected, finally, in Java … Continue reading If Java Were Designed Today: The Synchronizable Interface
So, you've been working with Java since the very beginning? Remember the days when it was called "Oak", when OO was still a hot topic, when C++ folks thought that Java had no chance, when Applets were still a thing? I bet that you didn't know at least half of the following things. Let's start … Continue reading 10 Things You Didn’t Know About Java
Java 7 has eased some pain in the area of exception handling when the new try-with-resources and multi-catch syntaxes were introduced. The latter is very interesting from a syntax perspective because it is the only place in Java where formal union types are allowed, similar to what Ceylon offers. Remember, a union type A | … Continue reading Feature Request for the JLS: Auto-Rethrow
What does one do when Hibernate is "finished" and feature complete and one needs new challenges? Right. One creates a new JVM language called Ceylon. On November 12, 2013, Ceylon 1.0.0 was finally released and we congratulate the whole team at Red Hat for their achievements in what looks like a very promising new JVM … Continue reading Top 10 Ceylon Language Features I Wish We Had In Java
I have often wondered, why the team around Brian Goetz has been heading towards a “decent compromise” so strongly from the beginning, both from a marketing AND technical point of view, instead of adding more boldness to how Java 8 is advertised. At Devoxx Belgium 2013, Brian Goetz seems to have really sold his accomplishments … Continue reading Where’s the Self-Confidence when Advertising Java 8, Oracle?
What do you think that the following code snippet will print? Object o = true ? new Integer(1) : new Double(2.0); System.out.println(o); Yes! It will print: 1.0 What? 1.0? But I have assigned an Integer to my o variable. Why does it print 1.0? It turns out that there is a subtle little specification section … Continue reading Java Auto-Unboxing Gotcha. Beware!