Or is it? If you look around the web and at conferences, it sounds like the world is made of containers and micro-services. However, is this truly innovation? Let’s take a step back and look at things from a historical perspective. FreeBSD introduced jails, a similar concept to containers in 2000. IBM offered something similar with AIX Workload Partitions since 2007. As for micro-services: we have almost two decades of service-oriented architecture to look back on. My point is not to say that containers and micro-services don’t serve useful purposes. Because they do, in the right circumstances. I’m not saying that Docker and its contemporaries don’t provide improvements over the historical alternatives, or that micro-services are only SOA in disguise. It’s just that so many vendors (and consultants) jump on these seemingly new bandwagons, tooting their own horn a little too hard for my taste. All in the name of innovation, even though it’s popularisation at best.
We don’t need more endless discussions and promotion of so-called innovation leading us back into walled gardens. And yes, even though Docker for example is open-source, its container format is highly specific and non-portable. Fortunately, the container-people are seeing the light on this as well. The industry needs to establish common ground on these ‘incremental innovations’, truly allowing everyone to reap the benefits. It’s great to see the recently announced Open Container Project under the Linux Foundation filling this void.
But wait, you say, isn’t standardisation usually a bad thing? Stifling innovation and moving technology forward at a snail’s pace (Java EE anyone?). Sure, there is and will always be a healthy tension between standardisation and innovation. Having a great standard leads to network effects and amplifies innovation. Think about the internet itself, whose tcp/ip and http roots have brought us to where we are now. On the other hand, standards (or their associated processes) can be severely broken and promote bad practices.
What sets great standards apart from bad standards? Sadly, there seems to be no recipe for success. It requires a perfect storm of the right market circumstances, the right people and the right vision. You can’t will a standard into being. When common ground has been established in the field and participants aim for the common good rather than their own needs, the standard at least has a fighting chance.
I want to discuss one last standard: JSR-376 ‘Java Platform Module System’, also known as the specification for Project Jigsaw. A proper module system for Java has been postponed many times. Putting smart people in the same room (ok, mailinglist in this case) apparently is no recipe for success. This time, it really looks Oracle is making the push for the Java module system to ship with JDK9. I’m following the progress closely together with Paul Bakker. In September we are giving a talk at JavaZone to compare and contrast Jigsaw with OSGi. This seemed reasonable, since JDK9 is set to be feature complete December of this year. However, progress on the JSR-376 spec mailinglist seems to have stalled in April of this year. I get that modularising Java has some unique challenges, but why is it so hard to flesh out given so much prior art? Given the current status of the spec I fear we have a lot of speculation to do in our talk. I even anticipate the work being pushed back to a later Java release (again).
Now, time for some music! The next song is one of my favorite instrumental pieces, composed by jazz guitarist Mike Stern: Common Ground, featuring the Brecker Brothers. Even if it’s not your cup of tea, stay around for the phenomenal sax solo by the late Michael Brecker starting around the 5:30 mark. Instant frisson for me…
Enjoy the week!