Would building an in-house JVM take far more resources than using an existing implementation? Does it make more sense to license one or use a non-GPL option?
How realistic is it for a company to build its own JVM?
Answers
It depends a lot on what they mean by their own JVM. A clean-room implementation is a very different project from forking OpenJDK and changing a few things. Even an internally packaged build with company certificates could get described loosely as an in-house runtime.
A fork still needs maintenance, including taking in upstream fixes and testing changes. But starting from an existing codebase is a much smaller lift than building a competitive runtime from scratch.
Reply to this answer
Writing a JVM that runs some bytecode is doable. Writing one that competes with OpenJDK on compatibility, performance, and features is a much bigger undertaking. A production-quality JIT compiler and optimizer alone are substantial projects.
A narrow internal runtime might be viable if it only needs to run a known set of simple programs and doesn't need full compatibility. That doesn't make it a general replacement for an established JVM, though.
dOuble_check_the_hem:
The size of the supported workload matters a lot. A runtime built for a controlled subset can make different tradeoffs from one expected to run arbitrary Java applications.
Reply to this answer
There are real examples of companies developing JVM implementations, so it isn't inherently impossible. The harder question is whether the company has a specific need worth the ongoing engineering cost. For most uses, an existing runtime or a supported distribution seems like the more practical starting point.
Reply to this answer
Check the licensing premise too. OpenJDK is distributed under the GPL with the Classpath Exception, which generally means an application running on it does not have to be GPL just because of that. Modifying or distributing the JDK can raise different questions, so the exact use and distribution matter.
312k!sidecar:
And a particular distribution may have its own terms for support or other components. Those are worth checking separately from the application license question.
Reply to this answer
Add your answer
Answers are reviewed before publication.
b56!waypoint_30:
That distinction helps. A company saying it has its own JVM doesn't necessarily mean it wrote one from the ground up.