Member-only story

Containers vs VMs

Do we need Java-style virtual machines in a world running on container technology?

Erik Engheim
2 min readMar 12, 2021

This is a follow up to my story on how Java and C# may be obsolete in the age of Docker. I realize that some of the arguments may have been taken a bit too literally. I never meant to imply that Docker is all you’ll ever need. Docker is just a convenient proxy for any container technology.

The key thing was to draw a distinction between the strategies that were followed by Java and C# in creating their own little ecosystems with the JVM and CLR. Of course, this is partly an apples to oranges comparisons. The JVM and CLR allow different languages to use each other’s libraries.

Lucas Holt has some interesting perspectives to add to this discussion:

The idea of containers is great, but the reality is that there is massive overhead in the current approach. There’s a reason people are experimenting with exokernels, lightweight operating systems for virtualization of apps, etc.

Indeed, and I don’t think Docker is the be-all and end-all of containerization. One can use things like exokernels or unikernels. But the point is that whatever such system you use, you can use languages which compile code to native code. You don’t need byte code based solutions.

If either Linux or Docker go away, the entire basis of giving up on anything but Go or Rust is out the window. Not to mention one could write in C, C++ or another language…

--

--

Erik Engheim
Erik Engheim

Written by Erik Engheim

Geek dad, living in Oslo, Norway with passion for UX, Julia programming, science, teaching, reading and writing.

No responses yet