Why Java Sucks For Sysadmins
wekk.net
wekk.net
It should not be a pain in the ass requiring a helper shell script to print the pid of the running process to a file.
And I'm sorry, but your code-browser may have a fancy gui for editing your xml configuration files. But I don't want to rely on having a GUI available to me. And reading raw xml even pretty-printed, is annoying.
Also, memory and disk space are not infinite; networks are unreliable and slow; and executing binary code dispatched from other machines is a security risk even inside the vpn.
If the java community cared about any of this they would have fixed it long ago, but as it is most java apps have a baroque suite of helper tools for deployment and management, and while they spew lots of internal information there seems to be some resistance to having them talk to syslog, and the process is not trivial.
- he equates long jvm startup times with generally slow execution times.
- he equates uncaught java stacktraces with properly displayed error messages from command-line tools
- he gets frustrated that ldd and similar tools don't work on java apps
- he equates the JVM startup overhead (syscalls) as meaning that a "hello world" program is overly complex, rather than, you know, an entire VM starting up.
Basically, he has not the slightest clue about what Java is or how it works, and assumes it's just like all his c-language CLI tools. Which, obviously, it's not.
Maybe that isn't fair, but there's something about java that seems to make programmers think that uncaught exceptions are an acceptable standard error exit.
Or maybe I'm just really unlucky in happening to run into the problem over and over and over again.
From the Admin POV that's more helpful than a 200 line pamphlet boiling down to something like 'AbstractConfigFactory: nullPointerException'.
Maybe java itself doesn't suck - I'm willing to give it the benefit of the doubt because a lot of fairly smart folks seem to like it. But a large number of real life java tools and programs suck. It's to the point where I shudder in revulsion every time I see the telltale indications that a solaris (or even worse - linux) tool is written in java - it promises a future that involves playing with 50 levels of shell wrappers to get a remotely meaningful error message.
This article is clearly outdated. A lot has happened in the ten years since the 1.3 release. One example is that they discovered a bug in the jar code that made it much slower than it should be.
http://blogs.sun.com/CoreJavaTechTips/entry/superduper_slow_...
Or I will replace you with a very small shell script.
Not too long ago, sysadmins sent kernel and driver patches upstream. And the true Unix beards have a .gdbinit file per-kernel that's longer than your CV.
Very, very few sysadmins have the luxury of spending time on this sort of thing.
Technical competence does not in any way imply employment in the field.
Lets get this straight. Adding data to an Excel spreadsheet using VBScript doesn't make you an Office developer, if you know what I mean :)
Some of it is just flat wrong (e.g. the perl error message only exists if you write it -- if the developer didn't check for errors, they just don't show up).
Much of it is just "I haven't learned to do my job."
The point of the article is that java makes his job harder. There are standard tools (syslog, truss, ldd) that he uses to troubleshoot problems under unix, and java supports zero of them.
It's not hard to get java using syslog if you really want it to (I wrote a syslog client for java, but ended up deciding it wasn't right for my problem).
ldd typically doesn't make much sense in a java deployment, because people typically will publish all of the parts together in such a way that it's fairly obvious what pieces are in use.
If we're all attached to all of our tools, we can never make progress.
A bit of googling found this:
http://stefanparvu.blogspot.com/2007/08/java-for-sysadmins.h...