- Version Control
- Code Generation
- Build Tools
- Integrated Development Environment
- Application Engine
- Presentation Layer
- Conclusion
Integrated Development Environment
Unlike some other languages, Java does not require any specific development environment. You are not required to purchase your IDE from a specific vendor, and your team does not even need to use the same tool. This comes at quite a shock to some team leads, especially leads who are more accused to more structured environments.
I have found that allowing your developers to use the tool of their choice does require some additional planning for the team leads, but it does allow the developers to be as efficient and as productive as possible. If the tool choices are limited to a single environment, the quality of code will most likely be the same but the efficiency of the developers who are not familiar with that toolset will be terrible. Key combinations, feature variation, and performance differences between the different IDEs end up frustrating your team unnecessarily.
There really is no reason to force a single tool on your team. Java does not have any technical requirements that would predicate a single tool environment. If one of your developers is most comfortable and productive in Notepad, why stop him? Forcing him to use Eclipse will not make him any more productive and actually might retard his productivity a great deal.
Having said that, it is your responsibility as a developer to try out new tools as they hit the market. If the tool is free or has a demo version, download it and play with it. There is always something better just around the corner, and you should be watching out for it. Although I am a die-hard VI user myself, I have found IDEA to be a great environment that makes my J2EE development a breeze. I never would have discovered that if I had stuck my head in the sand and refused to look.