Java: Still the best language for work
Java: Still the best language for work
Like many hackers, I am a coding polyglot.

The first language I learned was BASIC. It came already installed on my parent's Amstrad 128 (the 128 refers proudly to the machine's 128k memory). That wonderful and unexpected toy is to blame for a lot! After that I graduated to C for writing games which I sold by shareware (posting the disks out - this was pre-internet). I also wrote some assembly code for speed-ups.
As an undergraduate, I used Pascal and C++. As a web-developer, I came to appreciate the power of Perl for quickly getting things done, and started experimenting with Javascript. As a postgraduate I learned Lisp and Prolog. I would go on to teach Prolog and Javascript, and to use Lisp for my Ph.D.
I also use C# at work, and I can code in Python, PHP, Matlab and Erlang. Once you've learned one programming language, it's usually easy enough to pick up others. The same core concepts tend to re-occur in different guises.
All these languages have good points and bad points. But if I have a choice of coding language, I will without question choose Java. Using Java, I can write both simple and complex programs faster and with less bugs.
Why? Partly because Java made some good design choices. Partly because there are good libraries for many tasks (with some notable exceptions). Mostly because the Java IDEs are superb.
I am reminded of this because lately I have been coding in C# using Visual Studio. Now C# is very close to Java - so much so that Microsoft have produced an automatic Java-to-C# converter (though it only handles the old Java 1.4). You might expect the C# coding experience to be similar to the Java experience. But it is much slower and clunkier - and this is entirely due to shortcomings of Visual Studio.
I don't mean to knock Visual Studio. It is a relatively good IDE. It is one of the best IDEs available - if you ignore the Java IDEs (and Allegro's Lisp IDE, which was a decade ahead of its time).
Eclipse is packed with powerful tools that work with you. Three areas stand out as being head and shoulders above Visual Studio:
- Code-completion tools
- Continuous integration support (i.e. continuous compilation with error feedback, and good built in testing support)
- Navigation tools
At a rough estimate, I would say I am 3-4 times more productive in Java/Eclipse than C#/Visual Studio.

