I spent the day with Java. This is something I haven’t done much of in the 2 years since I left Palm. In those early days after I left (once we got back from traveling around Europe and N. Africa) programming was all of a sudden a treat again. I was out from under the crushing weight of a statically typed, compiled language. Nothing like knocking out a whole web app over a long weekend, or building a popular library before running out of free re-fills at the corner coffee shop to make you glow with the pleasure of scripting languages. “Java is something you get paid to do.”, I said. So I was caught be surprise to find I actually am enjoying working in Java again.

It is a different head space. As much as I concentrate on building clean, object oriented hierarchies in Perl and PHP it never quite feels natural. Code pours out of the finger tips, but elegances takes concentration. Java is the opposite. Everything takes a bit of work, but even your “Hello World”-esque app are something you can be proud of at the end of the day. In some ways its a burden lifted, I can relax, let the wariness go, not be constantly on guard for some clever trick, or quick optimization that slip out leading me off the true path into the gaping maws of hackery.

Some Problems: Memory

I need more memory. When I bought my new laptop I was annoyed that Apple didn’t leave me a free slot, and I had to throw away RAM to upgrade, so I resolved I wouldn’t buy it from them, though it would have been easy at the time. Doing Java development with Project Builder, Mozilla (many windows and tabs, for Javadoc among other things), Xchat, NNW, iTunes, Fire, MySQL, Tomcat, and Apache running is definitely taking its toll on my 256Mb of memory.

Some Problems: Building (or Project Builder and Ant?)

I’m having trouble getting PB’s build system (Jam) to work well with Java, especially it seems to get confused by packages. (I’ll just write Java without packages!) Does anyone have good docs, or examples on getting Java and PB playing well together? Is there anyway to integrate Ant and PB?

Cool New Toys

The non-blocking IO stuff looks awesome. JDBC looks like its improved (but its hard not to pine for DBI), and open source Java really really matured in the last few years.

Overwhelm

God damn there are a lot of new APIs. I mean I knew there were, I’ve seen them mentioned, I even read about them, but trying to come up to speed all, or at least winnowing the useful from the chaff.

Last Thought

Of course some of my enjoyment might have stemmed from spending the day at the Ugly Mug appreciating another form of java.