The ServerSide has a thread on wether scripting languages are threatening Java here. I read through some of the early comments and there are a few points that stand out in favour of Java:
- Strong typing (matter of taste really)
- The innovations that is occuring through the community (AOP, IOC etc)
- Frameworks and standards (Struts, Spring, Hibernate, JDO, JMS, EJB etc)
The strong typing is just a matter of taste I guess. There are arguments for and against, but I just really like my types dammit. 😉 I like to know what comes in and out, and I like the compiler to tell me if I make an error.
The thing that makes me passionate about Java is the community that constantly is renewing itself, researching and creating new and better ways of developing software. It is a lot to keep up with, but I love it. I love beeing able to find new and better ways to do development, and I appreciate the vibrant community that shares experiences and discuss to find better ways.
The frameworks and standards are the results of this vibrant community. At least lately, the standards has been based on experiences from opensource frameworks and the community. The vast number of frameworks for everything and nothing gives me choices. Choices of how to develop, and choices of which concepts to follow. I have heard some .NET people say that it’s nice to get everything in Visual Studio .NET, ready to go. Barebone Java is pretty simple, too simple, so you should make an educated decision on which frameworks to use. It is challenging, and interesting. I like my work because of it. 🙂
Alright, I’m a Java geek. I could probably switch to another OO based language with some effort, and be productive after a while. But to me it’s not the language that’s the most important part. It’s the community. I do try to look into other languages when time allows it, but if I don’t see signs of a active community I spend my time elsewhere.