[ajug-members] Clojure-Conj and the State of Java
acidbriggs at gmail.com
acidbriggs at gmail.com
Fri Nov 18 10:06:53 EST 2011
Did anyone go to Clojure-Conj last week? I did. Any thoughts? I think I am falling in love.
In general, I have come to loathe Java, the language. Its endless ceremony (if anyone has really implemented good design patterns or have written a large swing application you know what I mean), code generators, XML configurations, cross-cutting concerns, dependency hell, time consuming rebuilds and redeploys, mutability by default semantics and lack of features: first class functions, type inference, regular expression literals, multiline string support (it goes on) that just about every freakin' language has now. I am not very excited about Oracle being the keeper of the code either. It won't be long until your JVM sucks unless you pay for the 'premium' one.
Now, you may think I am just ranting, but I am really curious to know what your perceived state of Java as a tool in general is.
Do people only learn Java so they can get paid? I mean, why would anyone want to start off with it? Or, why would anyone want to continue using it with all the other choices there are. I know the JVM can be a big selling point (and I believe that is the real technology, not the language) but you can run many languages on it. So, why are you (if you are) avoiding Ruby, Scala, Python, Clojure (screw Groovy, IMHO). If it really is all about getting work done and time-to-deliver, hasn't anyone realized how much extra time and effort go into developing good Java applications? I see that a majority of people employed as Java developers are just doing the enterprise, web application, transaction script (Fowler) applications which have more XML and boilerplate (ceremony) code in them than actual business rules just keep on chugging along with Java. We rely on code generators, Aspect-J, annotations and a bunch of other things just to do the simplest task of getting data to a screen. A web application I had written in Java back in 2001 would most likely be 10x the size and require 10x the RAM due to all the dependencies needed now, for what purpose? We now have tens of classes being written, generated, injected and intercepted to do the same thing we've always done in less code and time. Does anyone remember when stack traces weren't so ridiculously long?
Isn't anyone else frustrated? Or have we, as developers who use Java, not been paying attention to what the rest of the world (that world outside your enterprise) is doing?
I'd like to hear about people who are using the JVM with other languages. How many of you are polyglots in your profession?
More information about the ajug-members