Even in the Rails community Twitter have put their foot in it several times and, IMHO, have’t got huge credibility. They moaned about not being able to share database connections and then a very able guru known as Dr Nic (he is a Ph D. – and a lovely barking mad person) showed them they did’t know what they were talking about in about 10 lines of code. Hell, even I knew what they were saying did’t sound right and I had only been using rails for a couple of months then, but I have been database programming for the best part of 20 years.
I’ve also used another of their messaging tools, called Beanstalk, and it sucks. We are going to throw it away. It comes with a Ruby gem to allow you to talk to it and rails plugin that adds stuff to the Active Record class – the plugin breaks active record beyond repair – useless. I wrote a 100 line add-in that allowed you to make asynchronous calls using Beanstalk. I looked at their plugin and the code was nasty.
We’re replacing Beanstalk with a very simple daemon that comes in a hundred lines of code or so, is traceable, and works. Very sceptical about Twitter stuff after this experience, and it’s a shame they’re held up as an example.
We are’t a web 2.0 company. We just use Rails to get stuff done really quickly. If there was a faster development framework we’d use it. But I never want to go back to Java, it slows you down and gets in the way.
Luke pointed out that beanstalkd does its job very well in the right context. The problem we had was that it was very hard to see what it was doing and it was difficult to debug things and a simple daemon that picks the next record from a stack of database records and processes them one at a time was better for us. See his comment for the great things they’ve done with it. Horses for courses.