7 ms·
What's wrong with JVM?
by nobullet 11y ago
What's wrong with JVM?
- wiremine 11y agoNothing, IMHO. However, I do like Go's much leaner memory footprint for server side software. At least, that's been my experience: the same code doing the same task takes up much less RAM.
- rifung 11y agoSomeone correct me if I'm wrong but I think not using the JVM makes deployments much simpler. At least that was one of the benefits a team at Amazon stated about switching to Go while I was there
- icedchai 11y agoIn practice, it doesn't make much difference. You install the JVM once and rarely upgrade it. You build and distribute your Java apps as fat jars (meaning, all dependencies bundled.)
- rifung 11y agoBut what happens when some of the apps require different versions of the JVM?
- bitmapbrother 11y agoAs long as you're using the latest version then this shouldn't be a problem as the JVM is backwards compatible.
- tacticus 11y agoExcept on those fun occasions when it isn't really. :\
- icedchai 11y agoYou know you can have multiple VMs installed, with different JAVA_HOMEs, right? This is a solved problem.
- bkeroack 11y agoAmong other things, an unnecessary VM layer if all you ever run on is x86.
- pmahoney 11y agoThe VM part of the JVM allows for really great monitoring: there are standard ways for tools to hook into bytecode and add instrumentation without needing the source. There are also lots of mature tools available, but that's mostly because the JVM has been around for so long. We're looking at Go right now, and our instrumentation is currently done manually at the source level. Are there, or will there be, tools to add instrumentation similar to those available on the JVM? I'm sure it's possible...
- gtrubetskoy 11y agoThe JVM is a piece of software that rivals the kernel in complexity with for the most part redundant functionality (i.e. memory management, monitoring the running program, etc.). It does have the benefit of being uniform across platforms, but if you're dealing with a single OS, then the extra weight and deployment complexity isn't worth it - you're better off learning your operating system and its tools.
- yo-code-sucks 11y agoMemory overhead, and the ability for endless abstraction to save three lines of boilerplate code and then the fact that it has only one actual implementation, meaning the abstraction was unnecessary.