I have always considered myself a C++ guy. That was one of the first languages I learned. But, life has taken me through many different paths, and I have needed to learn others. It was seven years ago, when I tried my first cup of Java and I realized objects were a must: Why did I need to create an additional class to return a compound value? another file?, I could do a “one-liner” in C++. As time went by, I stopped thinking on certain optimizations like inline and char arrays and started thinking more seriously on blueprints. After all that time, I look back and realize those blueprints let me build lots of great projects. And market is not really interested on optimizations but on quick and effective development. So blueprints came into my life. Java gave me for many years what I needed but always had the feeling that it was not good enough for desktop applications. Then, SWT appeared. Finally a framework that felt rock solid… but only in Windows.
Never been a M$ guy, I needed to learn VB and C# during the last year. Must say first time I tried C# I loved it! It is like a mix of C++ and Java… best of both worlds! Code is pretty clean. IDE was nice and fast. There were thousands of snippets in the Internet. Contained many features not included in Java at that time like enums or operator overloading. But… but… it is M$ and it is not a multiplatform environment… And for some months I tried to convince my self it didn’t matter, until I had to work on a file uploader. This project needed to run on a browser and C# is not installed by default on them (neither Java, but it is easy to do it). So applets looked like the obvious option to solve this (and it also looked like the perfect excuse to use Java again). I surfed to java.sun.com and downloaded the latest sdk version. Downloaded netbeans too, and installed them both in my ubuntu computer. First surprise was look and feel is not Metal! In fact, it was merging very good with my current environment. After some clicks, stability seemed excellent. What was really exciting was the visual interface designer: it is the best that I’ve ever used. Quickly assembled some prototypes and tried them on Linux and Windows, getting great results… old slow swing was improved with some new native code, which gave it the required push to consider it for serious desktop application programming.
Lots of improvements have been done since last time I used java. And makes me so glad that such a good language keeps improving year after year. Most requested things have been incorporated like enums and last thing I read was that a class for handling the Windows’ Tray* was on their way to getting into the default Java distribution. Such improvements are mainly focused in getting us the required tools to develop better applications.
If you want to learn more on the latest Java improvements point your browser to http://java.sun.com/ and http://www.netbeans.org/
(* see http://java.sun.com/…/J2SE/Desktop/javase6/)