Java. I spent years avoiding it. I felt it was inferior to the power of C++. I thought it was slow, clunky, the GUI was rubbish and that garbage collection was for wimps who did not know how to clean up after themselves or use smart pointers. Ok, so we all know I was wrong. And life being the way it is, being so out spoken about Java was sure to come and bite me and it did.
Since December I have been writing Java as part of my day job and I found I liked it so much I've even started using it for some of my own projects. I do not even miss Microsoft's visual studio. I have become very attached to Eclipse and having code checked in real time, therefore negating a build stage, is very useful.
I have been so busy writing Java (and editing my new CVu column Desert Island Books) that I have not written an article on anything else for quite some time. The editor of Overload has been nagging me for material, as has the new publications officer. I have also seen a few comments here and there about how poorly Java is served by the ACCU at present, but then with a strong history in C and C++ this is to be expected. However, my plan here is to redress the balance a little.
I'm spending most of my free time (not that I have a lot these days) working on a file viewer application that allows fixed length record files in excess of 4GB to be viewed without loading the entire file into memory. I wrote one of these in C++ (MFC) for a company I worked for a number of years ago. It worked well, but was a bit clunky and the user interface looked rubbish. I think they are still using it, but I'm not sure. I have had a few failed attempts to write it in C# recently, but it was not until I had a go in Java with its JTable and TableModel classes that I really made some progress.
The file viewer is a little way off being finished, but I am starting to think about package and deployment options. I want it to be easy and one of the application I use in my day job uses Java Web Start and it works really nicely. Sun describe Java Web Start as:
Using Java Web Start technology, standalone Java software applications can be deployed with a single click over the network. Java Web Start ensures the most current version of the application will be deployed, as well as the correct version of the Java Runtime Environment (JRE).
It sounds ideal for a constantly developing application that may be used by people all over the world on different operating systems.
As I sit down to write this article I have done no more that briefly read the Java Web Start documentation (so much for writing about what I know about – again!). I am intending to write an article about how to create applications and deploy them using web start by investigating it myself and writing down the steps as I go. I'll assume a reasonable familiarity with Java and Swing.