It runs everywhere!
Posted Aug 21, 2012 15:01 UTC (Tue) by man_ls
In reply to: It runs everywhere!
Parent article: Kamp: A Generation Lost in the Bazaar
It is not just that Java did not solve every deployment problem; in fact Java has created additional deployment problems on every platform it runs on, which are just a handful. To name just a few issues: download a gigantic runtime, deploy a specific version of the JVM, deploy associated libraries (which may or may not conflict with those in the JRE), reserve a lot of memory for it (often more than the JVM provides by default) and make the whole thing run in a sensible way for end users without having to type an arcane command. A configuration nightmare. Compare with Python: a small runtime, standard library locations in the system, a simple way to run scripts, runs truly everywhere.
As to runtime errors, you are right about C/C++, but there is a reason why people put up with them. And Java is not without issues. I don't know if you have ever been in jar hell: looking for an error which manifests only on the web server, caused (supposedly) by a specific version of one the libraries installed, but you have no way to find out whether it was embedded in the JRE, loaded from the classpath, from the library path, or embedded in the .war file. (Normally you assume it is using the .jar in the .war, and only after a lot of head-scratching you work up from there.)
For development you need not only a way to manage all of the above, but also an alien build system (Ant, alien even to the JDK) and a way to manage dependencies (Maven), and then you have a lot of random packages not integrated with anything else -- not even with those already in the system. No wonder the only way to do sane development with Java is from within Eclipse, which provides a lot of the missing pieces -- but good luck trying to package and run that code elsewhere.
Makes autotools look like something easy. At least you run a standard set of commands:
./configure && make && make install and you are done, sometimes -- or you google the error.
to post comments)