I suspect that in a few years when the infrastructure for Python 'catches up' with that for Java, that I will end up doing 60% or my development in Python and 20% in Java - the opposite from my current language choice. Still, I think that the reliability and scalability of the J2EE platform will make J2EE the "COBOL of the 21st century": there will be more agile tools available, but J2EE will be a platform of choice for large web applications that provide web services, talk to web browsers, PDAs, cell phones, etc. Scripting languages like Groovy might help make Java development more facile in the future, but I am taking a wait and see attitude towards Groovy.
New paradigms for web app development must make it less expensive to:
- manage data persistence (for Java, tools like Hibernate and Prevayler help; for Ruby, the data wrapper capabilities of Ruby on Rails is a good start, for Python, automatic table wrapper generation from database metadata helps)
- provide agility in writing and modifying middle tier logic (dynamic languages tend to win here)
- easier ways to handle presentation, session management, etc. (continuation based web programming, better "what you see is what you get" tools, etc.)