Monday, August 4

Going Back To Java

I wrote some Java today. A whopping seven years after I last did so.

Java was pretty much what I cut my programming teeth on (well in a production sense at least - good ol' Haskell was what I had really lost my virginity to), it being the academic flavour of the month during the 90s. Dotnet was it its infancy, C# some theoretical beta language that Microsoft were planning to take over the world with.

Java was a wonderful language to work with back then, despite the awkward graphical user interfaces (does Swing still exist?) and runtime considerations. It was one of the first mainstream languages to place as much importance on a complementary framework as it did the language itself - for many it wasn't the portability that made it so popular but the brilliant and complete class library. Conversely C++ is often closed off to newcomers not because of its syntax or memory semantics but due to a lack of any real standard way of using it.

I wrote my final year project in the language and had a paper published based on that work. I thought Java would be my future and threw myself at it. But it wasn't really meant to be.

Since both my jobs were total Microsoft houses, my commercial programming experience to date amounts to around seven years C# and dotnet, apparently an impressive amount given the age of the language. Still, that rich experience cost me any proficiency in Java I had and although I sincerely believe that a good programmer can code in any language, I did find it a shame that I didn't ever have a commercial use for it.

Until now of course. My insistence on making this project as cheap, open and standard as possible means no Windows; and no Windows means no dotnet.

Frankly after so much exposure to dotnet I was expecting to be thrown back into the stone ages with anything else, but seven years is a long time in the land of computing and I was shocked to see how far Java has come. The scene is now awash with a frankly confusing number of swanky IDEs, application frameworks and servers, many open source and free. Community support, opinion and mindshare is also high, at least as much as with the equivalent Microsoft technologies.

In fact I spent most of today not coding but getting my head around the dazzling range of options that comes with the platform (and if anyone is interested for now I've settled on Glassfish for an application server and am looking at the usefulness of the Spring framework in my work). And I've not even looked at any of the new language features. Dependency injection? Oh yes please.

I'm actually pretty excited, especially after the underwhelming experience I had with MySQL. Even the obligatory "Hello World!" application I just had to write had me grinning like a kid.