I work for a company that processes locations for cell phones. You call 911 on your cellphone and our system locates you. A new feature we are developing involves having to process a very large number of messages from the service provider. Basically, a server gets some messages from the cell phone company, does some filtering and whole bunch of other vodoo, and sends out messages to the rest of our system.
We ended up outsourcing this server to another company. They were told that they need to process 15,000 messages per second which is needless to say, really really fast. So they go off and develop the thing while a co-worker and I work on a simulator that will feed the data to the new server. We originally decided to do our sim in Java just because it would be faster to code. We manage to get the sim built and test it... 2000 messages per second and we're not doing much processing at all. We tweak the code as much as we can to make it as simple as possible, do as little processing as possible when actually sending stuff out the door, even play around with the java garbage collection and run it on a real server. It got to the point that the messages were already loaded into memory before hand and being put directly on the wire in a loop. We got it up to 5000 messages per second when running on a real server. So we decide it's just not going to go fast enough because... well.. it's Java, and write the code in C++. The rate jumps up to 25,000 messages per second - cool, we exceed our goals.
We're happy, and deliver the sim. They hook it all up and give it a shot with the new server. Ends up that the new server can't handle more than 1000 messages per second. So our contractor takes the server back to work on it some. Two weeks later, they can only get it up to 1500 messages per second. They decide that it's a hardware issue - they're just doing too much processing and filtering for the hardware to handle quickly - so they change the specs to a drastically more expensive server hardware; essentially doubling the cost, and end up getting it to run at the desired rate.
So what language was this brand spanking new, ultra-high throughput, high processing load server written in? Java.