Java is my favorite language. It possess numerous qualities:
- Base of the language is clean, intuitive, and allows for strong error checking and great IDE features.
- Instantly portable on all platforms, even GUI applications
- Execution is getting faster and faster (Hotspot JVM), close enough to native code binaries.
- Great IDEs.
- Java 1.5 added very important features that really improved Java. People who didn’t like Java should give it another try. Enums are extremely useful and powerful (declaring constants used to be a real pain). Generics, even being just syntax sugar, are easy to use and make the code more secure. My SwingFast library relies heavily on those new features. I haven’t used Decorators yet but, judging from their Python equivalent, it is a great addition.
I have a couple of java projects:
- SwingFast is a library for Swing that enables to easily create and manage forms, fields, buttons, etc. in Swing applications.
- Stock Monitor is a swing application to monitor the stock market in a dynamic way.
Over the past years I used, in chronological order:
- Borland’s JBuilder. Alternatives are free and better.
- Eclipse, a very versatile free ide. It’s not the cleanest ide but has some very efficient features. If you want to do JNI development and manage a project with java and C, that’s a good choice. It offers all the modern features a java ide can have and has lots of useful plugins. Drawbacks are its relative complexity and it is kind of slow on Linux (v3.1.2). If you have 1GB of ram or less, it will not behave and often use up the resources.
- Netbeans. Netbeans is owned by Sun, so some people will prefer Eclipse. But in terms of pure Java development, Netbeans is robust and fast, javadoc pops up quickly as you use completion. You just feel very productive when using it. It is far from perfect though (as of v5.5beta): it doesn’t make it easy to handle project resources, and lacks some important features of Eclipse, javadoc comments editable within file, javadoc association to a jar on classpath (other than going through global library manager), thorough source formatter, etc. But one big advantage compared to Eclipse is that it seamlessly incorporates a lot of Java and XML features in the IDE: Java Beans, WSDL, XML editor, DTD, XML Schema, etc.