Allister Smith talks about: "Pragmatic Java".
Java has lost popularity recently to simpler web-development environments such as php , python, rails etc.
The main attraction of these environments is that development tends to be simpler and more cost effective. There is less, or sometimes no, emphasis on design patterns, abstraction layers, interfaces, Database Independence, taglibs, EJB's , entity beans, fixed data retrieval queries etc. etc.
There's nothing wrong with any of these development features. But the java community has frequently embraced these blindly without question. The simpler web-development environments are not hampered by this extra baggage.
Do we need to change our toolset or just our mindset?
This talk argues that a more pragmatic approach is needed. If a technique helps, use it. If it doesn't (or the improvements are marginal), don't. Nice to have is not good enough. Take a hot air balloon approach to your java environment. Can I do without it? If so out of the balloon.
Java is a strong, mature, rich-featured programming language. Some of the other languages are simply not as fully featured or versatile. But we can still learn from them.
Warning: some ideas expressed here may offend!
The talk is not intended to teach people python or rails, but to make them aware of the different mindset!