"Twitter, one of the highest profile Ruby on Rails-backed websites on the Internet, has in the past year started replacing some of their Ruby infrastructure with an emerging language called Scala, developed by Martin Odersky at Switzerland's École Polytechnique Fédérale de Lausanne. Although they still prefer Ruby on Rails for user-facing web applications, Twitter's developers have started replacing Ruby daemon servers with Scala alternatives, and plan eventually to serve API requests, which comprise the majority of their traffic, with Scala instead of Ruby. "
Not a slam against Scala, but does anyone else find it funny that Twitter had scaling problems with Ruby, so they think about moving to Scala, the scalability of which may or may not be well-explored at this point in time?
Well, a lot of Ruby developers surely agree with you. The problem seems not so much that they made the decision to move their backend away from Ruby (AFAIK their front end will still be a Rails app) but the reasons they publicly gave for doing so rubbed the Ruby community the wrong way. Scala is a JVM language so I guess the thinking is that the JVM has proven scalability, and if thinks get too tight, they can get closer to the metal with plain 'ol Java.
Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them. - Laurence J. Peter
From what I got, they were using "unidiomatic" Ruby with lot's of kind_of? calls, basically trying to emulate a static type system. With Scala they have high level programming with a pretty advanced type system.
Also, they've evaluated the available messaging queues but none of them really suited their needs, so they ended porting their own from Ruby to Scala (it helped that one of the guys already did the port in his spare time)
Some very vocal members of the Ruby community were deeply offended by the whole issue.