My reason has nothing to do with the language.
I like working with Java because of the open culture and tools around it.
There's an enormous wealth of open source libraries available, and Java developers tend to be very open about sharing code. In the MS world, folks tend to be very reserved about sharing code.
For the most part, Java devs tend to look for ways to improve practices. For example, Java devs started using the MVC pattern in web dev around 10 years ago; currently it's the new thing in PHP and .net development.
There are awesome tools available to help monitor and improve code quality: Findbugs/ PMD/ Crap4j/ Checkstyle (to name a few). Then things like Hudson and Sonar can aggregate the results of all of those for easy use/exploration. The best part is, the best tools are free; because, the community finds sharing ways to improve to be very valuable.
As for the language itself? meh. It's just a statically typed general purpose language.
Though you can compile Java to native machine code, it's generally better to run in a VM. The latest VM's have some pretty cool features, like runtime optimization. That's where the code is analyzed while it's running and modified (optimized) based on how it's used. You just can't do that with a compiler.
|