2 ms·
Everything in Java? Thanks but no thanks. I understand the author's point, but he's choosing the wrong language. Does the perfect language for this purpose exis
by koffiezet 12y ago
Everything in Java? Thanks but no thanks. I understand the author's point, but he's choosing the wrong language. Does the perfect language for this purpose exist? No - sorry. I've been charmed by Go lately and replacing python, small C/C++ and shell-scripts with small tools written in it. It has great potential for services and small tools and has a surprisingly large amount of libraries available for it given the language's age. But would I say Go is perfect for everything? Hell no - but it happens to be pretty good for what I need.
My view of Java may be a bit biased, since I also tend to look at things from the sysadmin pov nowadays. I can only tell that I never disliked Java until I had to take care of the monstrosities the Java developers bring to life, and mind you - I started out as a Java dev back in 2000.
The main issue I have with Java is the JVM and memory usage and leaks. No matter what people claim - no memory leaks in Java is a fairy-tale. We run both custom C++ and Java services (about 50/50) on a few hundred servers - and I cannot find a single issue in our ticketing system related to memory problems with any of our C++ services. Java services? Every. Single. Week. When I get an alert some JBoss unexpectedly died or became unresponsive - "java.lang.OutOfMemoryError" is most likely going to be the problem. A lot of those are permgen space errors, and yes you can try all the "fixes" like increasing the permgenspace, permgensweeping, enabling class unloading, ... but these don't always fix the problem and slow down your services. Every time this happened in our own services, this had to be fixed by our developers. It takes weeks to locate the problem, and you end up deploying new versions, upgrading JBoss, JSF, Bouncycastle, ... whatever.
- sandGorgon 12y agocan you talk about your jboss configuration ? We are thinking of building our API stack in java and are considering wildfly (undertow). Honestly, you are the first person who has talked about problems in Jboss and would appreciate some more info.
- koffiezet 12y agoThe problems aren't really JBoss related. I have very little problems with Wildfly itself. It is a clear improvement over previous versions, I had some problems with v7 which required me to upgrade the JSF modules, otherwise JBoss would suddenly die (in a crash & burn way) with a certain application we had. It's mostly the "memory is not an issue" attitude most java devs have. It's not JBoss specific, we also have some services written in pure Java suffering the same problems - but the majority of the Java apps run in JBoss here. Stress tests in test/qa usually don't bring up the issues I've seen, which sometimes only occur after weeks of running flawlessly with production-grade loads. The 'fix' is then running the critical apps twice behind a load balancer, waiting for one of the 2 instances to die (for logs/memory dumps), automatically restarting them - and hoping they won't go down simultaneously. Truth is - memory management in Java is HARD. When problems pop up, apparently finding the source of it is very difficult. I can't count the times I've heard "we think it should be fixed now", only to be confronted with another alert that the service died again a few weeks later. If it was one service we'd run, it would be fine, but we run quite a few more - resulting in weekly interruptions, tickets, sending of memory dumps to developers, convincing them - again - that it is their problem and not mine, ... So well - I'm sick and tired of Java. The only thing worse to deploy and manage are Ruby apps. But that's a personal opinion.