Hacker News new | past | comments | ask | show | jobs | submit login

Almost all modern Java frameworks specifically target Docker containers in the cloud.





To be fair it is in part due to containers being a really nice way to deploy languages with fat-runtimes.

Those fat runtimes are part of the portability lie. Runs everywere ... where the runtime is installed.

You can make the same argument for any compiled language if you call QEMU your runtime.

And this isn't just theoretical. Games written in compiled languages know to bundle all their dependencies. Games written in Java often expect you to have a JRE. And more often than not "a JRE" means the official Sun JRE (maybe even a specific version range) because too many Java applications use non-portable interfaces.


> You can make the same argument for any compiled language if you call QEMU your runtime.

Only if you ship a QEMU-compatible image, and I don't think anyone does. The usability and integration with the host system is too poor.

> Games written in compiled languages know to bundle all their dependencies. Games written in Java often expect you to have a JRE.

You can't get away from having to have some interface between the host system and the program, but so far the JVM is the least bad one. When laptops started shipping with ARM processors, both docker images and games that had compiled in their dependencies broke, while programs that were shipped as JARs worked fine.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: