In the last time, there is increasing interest regarding other languages, especially scripting languages. There is also some criticism about Java language features the slow JCP-process etc. From my perspective Java becomes a mature and very stable platform.
In last years many problems are solved, many Java SE / EE projects are also successfully deployed.
Because of this fact, it becomes boring for experienced developers, so that they search for new challenges. I also like challenges, but critical projects are not the right place to try out new technologies or approaches. You have also to consider, that an average developer isn't necessarily able to take advantage of the expressiveness of ruby, coolness of groovy or efficiency of aspectj. The strength of java is the stability over past 11 years, simplicity and robustness. Also Java's broad industry and community support is unique.
In my opinion in commercial projects it is better to minimize risks and use a mature, but not so cool technology. In real world, I spend enough time to explain basic design principles, patterns and even constructs like interfaces in projects. Just imagine, Java had closures, DSL capabilities, mixins etc.
So the real challenge in commercial projects is to find the balance between a mature platform and cool, new technologies. It is even more important to consider an average developer in the project and not only some luminaries.
In my opinion it is a great idea to use java as platform to execute languages as groovy, jruby etc. In this case already existing Java libraries, frameworks etc.can be used.
airhacks.fm the podcast:
Stay in touch: airhacks.news.