Tuesday, August 8, 2006

Thoughts on Java Development

I've been doing some Java development lately, mostly just for fun, but from time to time for work, and I've come to a few conclusions.

First, IDEA rocks. I really tried to give Eclipse a shot, and I really want to like it, but in the end it's just too slow for me. Heck, IDEA's faster and it's still verging on too slow, to the point that I occasionally revert to vi and ant. Outside of the speed question though, IDEA definately kicks some serious ass, I just love the way it points out problems I didn't even know were there. I've definately seen some weirdness with the way it complains about some perfectly valid Java 1.5 constructs, but all in all, I think it's worth the occasional backflip to work around that in exchange for the real problems it does point out.

Second, if you have to do any sort of multithreaded programming, in any language, but especially in Java, run to your nearest technical bookstore and pick up Java Concurrency in Practice. It's a fantastic book about the ins and outs of multithreaded programming in Java, and really comes in head and shoulders above any other book on multithreading that I've ever seen. Highly recommended.

Third, someone needs to explain to me what the appeal of Maven is. I just don't get it. Ant I can figure out, it works just fine, and aside from the XML bullshit I can certainly get along with it. Maven just seems to require me to bend my project into its image of what a project should look like (thanks for those LOVELY deep/directory/trees/that/go/on/forever even above and beyond the ones you get from Java in the first place!), and in return it will attempt to download all my dependencies and then fail half way through with some sort of network error. Thanks.

Finally, and this isn't because I'm interacting with it, but I just keep seeing it when browsing through the Java section of bookstores, how do these people take themselves seriously when their community actually makes use of a term like POJO. I mean come on people, you went and invented a special name for an OBJECT! It's a freaking object oriented language, it's composed almost entirely of objects, what does it say about the culture when you had to come up with a new name to market the practice of just using the fundamental abstraction provided by your language!

Anyway, it turns out I'm actually enjoying the Java work I've been doing lately. It's a pretty decent environment to work in, all things considered. I wouldn't want to live there all the time, but it's certainly a nice enough place to visit once in a while, if you stick to the less insane bits of it...