Quote from Corey:
Programming in Ruby is truly bliss. I love it. I have developed multiple strategies in it. The sheer number of gems (libraries) available makes it easy to solve almost any problem you run into without having to write too much code.
I mainly use Ruby for I/O bound operations (scraping web-pages, writing to and cleaning databases, et cetera) where the bottleneck is disk-seeking or network latency, where the speedup of C++ or Java would be negligible anyway.
Unfortunately, I never really got deep into data analysis with Ruby -- I still used tools like R and Matlab for that. I just found them easier to do the initial analysis with. But writing back-testing and implementing strategies? I never have had an issue with Ruby.
Because of its 'meta programming' abilities, libraries are written so you can even do cool stuff like embed web-servers (e.g. using <a href="http://github.com/rtomayko/shotgun">Shotgun</a> with <a href="http://www.sinatrarb.com/">Sinatra</a>) for real-time web-reporting of how your strategy. It is so freaking easy, it is something you probably wouldn't dare do in a language like C++ or Java without great design consideration before-hand -- but with Ruby, you can sort of do it on the fly.
Ironically, however, I find that once Ruby applications pass a few hundred lines, I end up writing so much test coverage code to ensure no run-time typing issues that I might as well have just used a statically typed language in the first place -- I end up spending pretty much the same amount of time either way. It really just comes down to where you find your coding bliss.