Member-only story
Containers vs VMs
Do we need Java-style virtual machines in a world running on container technology?
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…