Well fortunately we have Java and .NET, which means we don't have to give up on everything to use a new or better language.
For example, on our .NET projects, we've started moving to developing using F# whenever possible. We get to keep:
- Visual Studio (F# has plugin support)
- Team Foundation Server / msbuild (seamless)
- .NET (framework + 3rd party libraries we know and use)
- Existing code (full, easy interop (seamless most of the time))
- Backcompat - F# compiled code can be used with other .NET, seamlessly if we desire
Where things don't work out (F#'s quotations-to-Expression isn't really finished, and there's no GUI designer support), we can quickly drop back to C# and use the parts we need.
Now compare that to picking something off the platform. We'd be changing everything at once. If the platform is missing support for something (and you wouldn't necesarily know beforehand), you're gonna get slammed. By staying with Java/.NET, you significantly reduce your risk, while still being able to get most (sometimes all?) of the benefits of using another language.
So, look at some Java languages. I've heard Scala does near seamless interop with Java's existing OO system.
Edit
As to why C#->F# or Java->Scala, in both cases (as far as I know), the new language is pretty much a superset of the old one. So any place that C# or Java are working fine, F#/Scala should handle it just as fine, as a minimum. All the extra benefits are a bonus.