3 ms·
The JVM requires unexpected tweaks. It's surprising to discover that it doesn't use the time zone files provided by the OS, or that it might not use the availab
by qjz 16y ago
The JVM requires unexpected tweaks. It's surprising to discover that it doesn't use the time zone files provided by the OS, or that it might not use the available memory on your awesome new server. It's scary to realize that a lot of applications are deployed and certified to run only on a specific JVM version, and that getting security/bugfix updates for that version will get increasingly harder as time goes by. Before long, you have a proliferation of different JVMs that all need to be maintained, along with the host OS itself. These problems are acute with Java, compared to other languages, at least where the n00b is concerned.
- gcv 16y agoBy "specific JVM version", do you mean a major release version, such as 1.3, 1.4, 5, and 6? Or do you mean 1.6.0_20? While Java code is generally not backwards compatible, it is typically forward-compatible. Most 1.4 programs run fine on JVM 6. In fact, I don't think I've ever seen one that doesn't — but I'll take your word that they exist. Personally, I've had more trouble with OS distributions shipping Python 2.3, 2.4, 2.5, 2.6, 2.7, and 3.0. I've also had trouble with Ruby 1.8.6, 1.8.7, and 1.9.x. JVM applications have generally just worked for me, regardless of platform version number. In any case, applications being certified to run on a particular platform is hardly unique to Java. Any application whose vendor wants to reduce support load will be certified for a particular set of supported platforms. The situation is hardly better in C, with versioned .so objects and incompatible libc implementations. Back on topic: I somehow doubt that these questions seriously turn off beginners thinking about learning Clojure.
- qjz 16y agoIn general, I mean the major release version, although I have seen applications pinned to a specific minor release because an update introduces a critical bug (which is especially frustrating when you want the update for security reasons). I'm not a beginner programmer, but I avoid languages built on Java or .NET for these reasons, among others.