My company has been using Java (as a language and a platform) for many years. We have lots of products varying greatly in size, purpose and complexity. Whatever the requirements, the answer is always the same - Java. This stance obviously has advantages and disadvantages. On a plus side, there is no context switching between work assignments on different projects, every developer in the company can be relatively productive on many projects; on a minus side, a small tool might end up being "crushed" by Hibernate. On one hand, packaging, deployment and execution environments could be standardized; on the other hand, we might loose agility of the mind and miss out on optimal solutions by always "thinking in Java". I could go on and on and on.
Polyglot programming has become quite common in the recent past, as much as I can observe. Sayings like "right tool for the job" always ring loud in my ears as well. A desire to open up and expose ourselves to more "right tools" is quite strong, but where is a catch? Better yet, where is the golden mean? It's always dangerous to go from one extreme to another. I dread a day of waking up into an incomprehensible mess of a giant pile of Java, Groovy, Python, Ruby, PHP, Scala, etc. with all their corresponding tools, frameworks, servers and philosophies.
Do you have a practical experience working in language and platform polyculture for at least two years? What are your main observations? What are you still excited about and what do you dread?