Issues when writing a medium/large system
All much of a muchness really. There are features in Python/Ruby that your aware of that make them a more appealing offering than say Java. Static typing can be your best friend most of the time, and a pain for the other.
Lack of tooling is related to adoption. Java/c# has a larger adoption.
Corporates/Enterprises and medium to large organizations, like to procure solutions with contracts as opposed to technical merits.
From experience Python does have some speed issues, I can't comment on Ruby, but I imagine that if your applications require dedicated speed I would not use python.
Also threading and multi-core processing is not as good as it could be in python, although 2.7 seems to improve a lot of the old problems, I think the GIL problem still remains for threading.
My only comment on Java is that it now has Oracle behind it, and depending where your sitting and how you like Oracle, might change your attitude to Java. especially if your designing for Open Source solutions.
There is some hype with languages like Python (that I like very much) and Ruby but I was writing a medium-size system in Python and feel the lack of some tools that I would have if I was using Java: Eclipse features, JUnit integration and some language-features like catching some errors in compile time.
Some people says that Java is dead as a language. But large important software are written in Java: Hadoop, Lucene and many others.
Is Java a better language than Python or Ruby for medium/large infrastructure software like these?