Poker Copilot’ first exposure to Java 9

(Poker players, you probably won’t find anything interesting here, unless you are also a programmer).

Poker Copilot is written in Java. The first version of Poker Copilot used Java 5. Over time we used Java 6, 7, and now 8. Each time we upgrade to a major version of Java, we get either improved performance, decreased memory usage, or both. It always feels like a free Poker Copilot enhancement for me. I upgrade Java, now my product seems better to my customers.

Java 9 is available in early access, and is due for release next year. It is stable enough to use experimentally. Today, I downloaded and installed Java 9 and tried to run Poker Copilot. At first, it didn’t work. I had to make some minor code changes for it to run. Now it runs.

This sounds unremarkable. But it isn’t inside the world of Java. I’ve been programming in Java since Java version 1.1, in the 1990’s, and I think this is the first time I’ve upgraded to a new Java version and my code didn’t compile and run. The Java team aim for backward compatibility, and now, 20 years in, for the first time, backward compatibility is broken.

That’s not necessarily a bad thing. The changes were needed for a major change to Java, the so called “module system”.

For now, Poker Copilot will stay with Java 8. But when Java 9 is released, we’ll switch pretty quickly. This will let our Windows users with HiDPI displays have a better experience, it will decrease the size of Poker Copilot’s download, and it will let Poker Copilot start up faster.