Source: Twitter Trouble.
Twitter is an amazing success story in terms of rapid user uptake and flattering press.
I feel I deserve an enormous share of that flattering press.
I had a chance to speak with the team a while back about the wild ride they’ve been on. At that time they were fielding spikes of up to 11,000 requests per second across some 16 cores with very little caching thrown into the mix to mitigate. No wonder their site had been feeling slow.
I’m going to pretend that everyone has these problems.
It sounded like they had a good plan at the time, though. Roll in a rack of new servers, look into doing substantial caching, and move beyond a single database server. The normal road to sanity employed by most any web application experiencing rapid growth.
I am a software developer, therefore this is obviously a hardware problem.
It seems like at least one of their developers felt this standard approach to scaling was too much work and decided to share his feelings about that in an interview.
Fuck you, Alex.
On some level, I can empathize with this sentiment. Rails makes the act of developing such a pleasant experience that when you need to follow the same scaling path as every other shared-nothing stack, the contrast can feel stark.
My ego is the size of Montana.
But I would still like to address two points raised in the interview. First, Alex mentions that scaling the application by adding more Mongrels and servers eventually puts a greater strain on the database. That’s absolutely correct, but also the intended consequence, not an unexpected side-effect. There should have been no surprises there.
The only surprise here is that you’re treating my utter disregard for scalability as a bug, when it is in fact a feature.
Scaling is the act of removing bottlenecks. When you remove one bottleneck (like application code execution), you tend to reveal another (like database queries). That’s natural and means you’re making progress.
Rails is an ogre, and ogres have layers.
Second, when you work with open source and you discover new requirements not met by the software, it’s your shining opportunity to give something back. Rather than just sit around idle waiting for some vendor to fix your problems, you get the unique chance of being a steward of your own destiny.
My utter disregard for performance issues is entirely your fault.
This is especially true with frameworks like Rails that are implemented in high-level languages like Ruby. The barriers to contribution are exceptionally low.
I am high as a kite.
In this case, it seems that Twitter requires more sophisticated ways of talking to many databases at the same time. Alex puts it a little black and white with “…there’s no facility in Rails to talk to more than one database at a time”, which isn’t really true, but it could definitely be done better. Last I spoke with Twitter, we discussed this and they sounded enthusiastic about being able to further this area of Rails.
I can’t distinguish between people fluffing me because they want something, or fluffing me because they just can’t help themselves.
It’s disappointing to hear that they’ve forsaken that opportunity for an arms-crossed alternative.
It’s disappointing to discover that there are people in the world who disagree with me.
Once the stress of having to deal with that in the moment subsides, I’m convinced that the team will grow beyond the blame game, get their hands dirty as full participants in an open source community, and contribute back their advances to the framework.
I know this sucks, and I’m waiting for you to fix it so I can take credit for it.
(with apologies to John Gruber)
§
Funny, but perhaps a little harsh? Especially when you consider the follow-up that proves him right.
Fantastic.
— Jeff ![]()
“fluffing” means giving a handjob?
Mark, I wish you had thought twice before posting this one. While David may not be the programming savior of the world, he is very upfront about his faults. Your dissection of things he didn’t say says more about you than it does about him.
DHH’s rants have smacked of way too much arrogance these past few weeks. It was time somebody put him in his place, cutting through all the diplomacy.
Awesome! :)
As I was reading, I was alternately laughing and narrowing my eyes at the obvious lifting of Gruber’s style. Then I saw the “apology” at the end and laughed even harder.
Two with one blow!
Nice post. It’s ridiculous that DHH is calling for others to be better OSS citizens and contribute something back when he is so quick to dismiss others if they don’t agree with him.
Pot, meet kettle.
This is what everyone is thinking. 2 years from now we’ll be looking back at DHH and going “Oh, what rails could have been”.
Putting words in other people’s mouthes is easier and more rewarding than saying something yourself, huh?
Simply Awesome!
I am LMAO. Thanks! BTW who is DHH?
It would seem that DHH is rather annoyed with Alex. Might that be because Alex mentioned that Python usually performs better than Ruby in most cases? Perish the thought.
OK, let’s take the words straight from DHH’s mouth regarding people who dare question his vision and priorities: “F*** You”.
I hope he learns some humility before Rails gets forked like emacs did.
“Putting words in other people’s mouthes [sic] is easier….”
When “translating” someone’s words in this fashion, “putting words in other people’s mouths” is not an apt description of it. Literally, sure, but there’s the comedy. But your insult comes from the implication, not the literal meaning. Usually the term connotes some kind of deception. Here there is no such deception, the author is being very plain about it. It is clear that what we are reading is the author’s take on what has been said, which is his own commentary… which is something he’s taken his time to articulate.
The author is being neither deceptive nor lazy, so I don’t see any way that your criticism holds.
I don’t know about what “fluffing” is, but I know what a “fluffer” does…
Hilaaaaaaaaaarious! :)
— Uzair ![]()
For those who don’t get the “translation” thingie, follow the Jon Gruber link. If you still don’t get it, try this:
http://daringfireball.net/2005/04/adobe_translation
Of course, you may understand it but not think that it’s particularly funny. Oh well!
You are really grasping at straws with this post.
Let me guess, you started writing your own framework in PHP a few months before Rails hit 1.0 and all of your friends chose Rails instead?
Sore loser.
Can’t we all just get along? One platform, framework, language, IDE, versioning system, licensing scheme, or operating system that is the answer to everything is a monoculture that leads to stagnation and halfassed, lazy solutions to problems. Are we not all trying to be good little monkeys and write our REST applications, XML this-that-and-the-other open and interoperable formats that can share and care and make the world a better place? So a ruby on rails app turns out to not scale as well as expected. This does not invalidate it for every use. I myself make a living on a red-headed stepchild of a language (which I will not name, for fear my it is used to dismiss my comment) that is inappropriate for many uses but fits my business model very nicely. Sheesh, people. Every time somebody aggrandizes their toolkit-du-jour over anything else, God kills a kitten.
You know, I didn’t find this hilaaaaaaaaaarious and I’m certainly not LMAO. This is… mildly amusing in a childish sort of way.
And I’m not even saying anything on the acuracy of the translation. But from a humorous point of view this is sort of… meh.
“My ego is the size of Montana.”
Hahahah, just this quote is worth the admission price! I am a rails early adapter, but the recent DHH outburst has left a slightly bitter taste in my mouth. Too bad there aren’t any viable alternatives to the tightly woven fabric that is the Rails framework.
Thanks for a brilliant post Mark, spot on as usual!
One of your best rants ever!
I’m still rotfling.
37signals seems to be staffed entirely by people who consider condescension and bloviating self regard to be a business strategy. Their blog entries on tech support are prime examples, particularly good doggy and bad doggy.
Mark, your post is quite unfair and also pretty uninformed (besides not being very clever or funny IMO). Your motives seem rather questionable and the whole thing smacks of sour grapes. Surely, DHH is very opinionated and as such he can reasonably expect harsh criticism coming back at him, but this just seems to be another low blow in a greater flamewar directed against him as of late (and should it surprise anyone that the most vocal contributers on this seem to be coming out of the Python community?). I don’t see anything in his response to the interview with Alex which would warrant this kind of attack and i have a feeling you may come to regret posting such nonsense before the day is done.
This form of commentary is already a bit tired, don’t you think? Personally, I’d prefer some real writing to a clammy fistful of one-liners. Even if the guy has faults, at least DHH could offer his audience that much.
“Rails is an ogre, and ogres have layers.”
ROFL !!!.
No matter how funny and correct this is (which it’s both, I have to say), that doesn’t make posting it the right thing to do. I’m surprised to see childish playground stuff like this – rise above it.
DHH’s rants have smacked of way too much arrogance these past few weeks.
Last couple weeks? You meant years right?
— ramanan ![]()
About time someone brought this up. He just sounds annoyingly too poetic.
— Doodles ![]()
I’m proud of what Twitter has achieved with Rails. I’m certainly of no illusions that Rails is perfect nor that Ruby is a speed daemon…. Alex pointed the finger at the database himself in the interview. When they added enough Mongrels to deal with the computational bottleneck, he said they started to have trouble at the database and needed to add more databases (and was thus disappointed at what Rails had to offer to support that).
This is a quote by DHH in the comments.
I tried to speak in clear and balanced language in that interview, but clearly I didn’t accomplish as much.
This is Mr. Alex Payne, responding.
It seems an American shows he is pretty respectful of a Dane(someone else calls his nationality into play on DHH’s blog), Mr. Pilgrim just plays it for laughs. The net benefit of all this is all of the players get more press. No one is too delicate for this type of fight.
Sebastian, Andy et. al., David expects, nay, demands a religious zealotry, and this is the kind of attitude we have to guard against in the Rails community. To pretend that the criticisms coming towards David are from outside Rails(TM) community is akin to sticking one’s head in the sand.
He is a talented guy, no doubt, he created Rails and is passionate about it, no doubt about that either, but this doesn’t mean that we owe supine allegiance to everything he has to say about everything. Based on this un-questioning conformity by the Rails community at large, he has managed to embarrass us all on numerous occasions. Twitter being merely the latest Faux Pas.
Just like DHH doesn’t owe anyone sh*t, by the same token, Rails and Ruby community doesn’t owe him blind allegiance either! He has to stop making these scenes and attacking people if they don’t agree with him. He has acted as a bully towards his own community. We shouldn’t be so quick to blame others and warn of “regret”ful consequences just because they happen to notice his almost abusive behaviour.
Stop feeding the guy’s Messiah complex. Please!
Ah, a very funny way to say what I was thinking as well. Honestly, DHH seems like a really sharp guy, but there is no question that both of his recent posts about Twitter were entirely out of line. He came off as full of himself, unflexible, demanding, and proud. Thanks for calling him out – it needed to happen!
Damn it. I like your writing Mark. I value your opinions.
But why the hostility? This is just viciousness. Your entire point point could be summarized simply as “DHH is arrogant and he doesn’t care about scaling.”
Is DHH arrogant? Blatantly. So is Guido. Likewise Larry Wall, and Alan Kay, etc. Comes with the territory.
However, Rails is scaling. On a number of high profile sites.
Your response to the suggestion that it is easy to contribute to Rails is patently absurd given that one of the Twitter folks’ biggest problems with Rails has been fixed two ways in three days. One solution in seventy lines of code.
In short, let’s be done with the hate. I’ll start. I love Ruby, I love Rails, I love Python, I love Django. I think Django does some things better than Rails, and some benchmarks have it performing considerably better than Rails.
I don’t know much about the latest round of rails arguments, and I don’t care to, but these translations are great. Nice work, Mark.
— Scott N. ![]()
Yes, Mark, YOUR ego is the size of Montana. Glad you finally admitted it.
Great post, Mark. I’ve been a Rails user since 0.13, and while I think it’s great, I wish DHH would learn a lesson about humility. I read the original interview before DHH posted on it, and didn’t even think twice about Alex’s comments. He spoke about his experiences. That’s it.
I didn’t see anything that deserved this type of backlash. David could have simply acknowledged the short coming, and the encouraged the community to solve it.
Instead, we got ‘Fuck you, Alex’.
Thanks for making my day. ;-)
/chuckles
Too funny, and I was thinking along the same lines when I read the DHH piece…
— naum ![]()
If DHH was as humble or as ‘nice’ as many people wish he was, we probably wouldn’t have Rails today or the many, many frameworks in other languages that have used Rails for inspiration.
Sometimes it takes arrogant, rude behavior to make things happen.
http://glu.ttono.us/articles/2007/04/15/on-twitter-rails-and-community
— Rob... ![]()
The only reason comedy ever bugs anyone is because it rings too true.
This was hilarious, Mark.
Nicely said and well done.
I have to admit that I’m having just as much fun reading the comments from people with their panties in a knot over you “attacking” rails as I did the actual post though.
Mark, I don’t quite think DHH would agree with your depiction of Rails as an “ogre.”
No, DHH would tell you Rails… is a parfait.
> Sometimes it takes arrogant, rude behavior to make things happen.
DHH did not create anything. Rails is a simple collection of ActionPack+ActiveRecord, none of which was created or inspired by DHH in any way. He is basically a very talented marketing person who collected a bunch of free scripts created by other people and PRed the hell out of it, making a name for himself. I bet nobody even knows who ACTUALLY wrote ActionPack or ActiveRecord, two libraries Rails is composed of.
Gosh this is absolutely hilarious. I am bookmarking this page and will read it when I need a laugh!
Please keep up the excellent work.
Wow. What tension!
I love ruby and rails and I like this post. Thanks Mark.
If our next site takes off like we want it too, we know we’re going to have scaling issues ruby on rails and it’s probably going to take more hardware than if we had choose to code with C and optimize our loops in asembly, but you know what?
We’re still using ruby on rails.
Sometimes it takes comments like the one from ‘Eugueny’ to make you realize that you should get back to work instead of wasting time arguing with a bunch of 5th graders. Thanks, Eugueny.
Hey Eugeney, are you sure? because it is true that most of the stuff was cobbled together from already existing libraries, but I thought he came up with actionpack/activerecord based on martin fowler’s book? But maybe I’m mistaken?
At least he’s got the name “Ruby on Rails” trademarked! Good thinking kiddo!
I can’t believe Peter Burns compared DHH to Guido, Larry Wall, and Alan Kay!
The Rails fever has clearly reached a level where he is now seen as some kind of religious messiah by his followers. They’re blind to everything around them, except the light generated by DHH.
Ahhh, the mud slinging. Personally, I didn’t find Mark’s entry childish or anything. Just another (funny) point of view. It’s no secret that DHH has an arrogant streak, but I’m not going to judge him for it. I’m pretty bad myself. But as others have pointed out, it took very little time for viable solutions to show up once people were properly motivated. (An interesting challenge. Good PR. Whatever.) I doubt I will ever have a particularly strong need for these solutions since I’ve stuck to fairly small, niche Rails applications, but it’s nice to have them, and so I’m not going to object to this giant kerfluffle.
— Bob Aman ![]()
The main flaw being complained about has already been fixed, invalidating half of the things you roundaboutly try to claim here. Way to pwn yourself, Mark.
The Rails cult is getting on my nerves. All they have to show is Twitter, and when Twitter has scaling problems, the cultists start attacking Twitter instead of admitting Rails’ faults!
People who need help should use this Danish anti-cult website: http://www.dci.dk/en/
According to Wikipedia, “‘Fluffing’ can also be used to describe the artificial inflation of another’s ego for personal gain and/or insincere promotion of ideals or policies.”
Although I sort of suspect that wasn’t the variant Mark meant. The world may never know!
“The Rails cult is getting on my nerves. All they have to show is Twitter, and when Twitter has scaling problems…”
Penny Arcade has been running Rails for quite some time now and they aren’t slouches when it comes to traffic. But it’s not as interactive as Twitter. Mostly DB reads.
— Scott ![]()
First Googler to get more cutting post googlization? ;)
Marvellous.
The ‘problem’ was fixed with a 75 line rails plugin. Who’s got egg on their face now? I thought this was exactly how OSS dev worked. You write what you need, release it, then let people contribute. Seems perfect to me.
:)
My mother always told me that when you say something bad about someone (DHH is “arrogant” or whatever) it reflects worse on you than on the person you are talking about. I’d bet a good 95% of the people who dis DHH haven’t actually met DHH. When you do meet him you’ll discover he’s generous, kind, a good listener, and more than happy to help you in any way he can (within reason). DHH is also a leader and leaders have strong opinions. Anyone with strong opinions is bound to piss off 50% of the people.
What is this Hansso Initiative?
— jah ![]()
It’s funny, but a bit mean, and a bit inaccurate as well. DHH’s ego *is* the size of Montana, but his attitude is “I built Rails because I needed it, I’m glad all you other people like it.” You can’t fault him there. Rails is what he needs it to be. I don’t think he actually cares one way or another what other people do with it.
Giles, you are mistaken. He cares. DHH treats and protects Rails as a brand. He fights tooth and nail to protect his brand’s reputation even risking his own. Rails is his cash cow. He cares what other people say about it. We’ve met a Dave like this before. I believe he was called Winer. It would be sad to see a brilliant guy like DHH end up like that dude.
I could care less about the entire argument. But I love the great writing!
I can’t comment on the humour as it’s subjective — I don’t find this amusing obviously — but I do find the general sentiment to be quite bitter. Mark, as a long-term reader — I was sad when you started blogging less — I’m disappointed to see you stoop to this sort of nasty commentary.
As for some of the comments; I am simultaneously perplexed and disappointed to hear this clamouring about ‘cults’ and ‘messiah complex’ and other nonsense. Firstly I am a Rails developer. I don’t belong to any cults and I don’t care to be associated with such just because of my choice in frameworks. Ridiculous! Secondly I think folk should resist reflex to smear David with such nasty and personal comments. It’s unreasonable and plain rude.
David is a proud and forceful person, but that doesn’t mean we can’t have at least a modicum of manners.
As a rule of thumb, if you can’t make your point without being rude about it, there obviously isn’t much value to what you’re saying.
— Mr eel ![]()
Mark, thanks for writing a post which inspired such …entertaining commentary.
:P
— Sander ![]()
My personal take: When everybody in a community starts referring to any other member of the community by the first letters of their name, the community is screwed.
Witness RMS, ESR… DHH.
Finally….someone had the courage to stand up to the D(HH)ictator .
Great read.
Haha, spot on, let’s see if DHH can take a bit of good-natured ribbing.
I must admit, I was a bit disappointed by his post. There are ways to handle criticism, and his diatribe was not one of them.
Rails has been amazingly successful, but sometimes you have to swallow some get-the-fuck-back-down-to-earth medicine.
Going by the content of his blog I sometimes feel like I’m reading a tech version of our marketing department’s PR releases. Content over hype please!
Mark who?
Reading the followup, mark seems almost prescient when he writes “I’m waiting for you to fix it so I can take credit for it.”
Sad.
— LKM ![]()
How DARE you speak ill of our Lord and Savior David Heinemeier Hansson (hallowed be His name)! How DARE you question His divinity?!
Blasphemer!!!
Allow me to translate Mark Pilgrim’s post for everyone:
I have a small penis. A small nazi penis.
Well done, Mark.
I love how DHH takes every little criticism of Rails, Ruby, or anything else that he’s connected to in even the most insignificant way as an attack on his family’s honor. He’s the only person in today’s world who could say, “I challenge you to a duel!” and be completely serious about it.
> I’m surprised to see childish playground stuff like this – rise above it.
You must be new here.
It does no good to complain that people will avoid Rails even for apps the have 11K hits per month. The fact is, most people writing those apps *hope* that they’ll get 11K/sec. And if they get there, and the app starts to crumble, it’s no fun, period. It’s stressful. It’s more fun to be pouring champagne at that point. And one more fact is, while Rails is quite nice and productive, it’s not the *only* nice and productive framework. There are other nice, productive frameworks that do scale better, and it’d be nice if the Rails folks took some lessons from that instead of wasting time with defensive web postings.
Damn, I meant to post that on DHH’s article :)
DHH is really stupid and arrogant. He believes he invented ruby mixins: http://weblog.jamisbuck.org/2007/1/17/concerns-in-activerecord. He is very ridiculous at times. Just ignore him. When he is wrong, of course he is going to make a bigger fool ogf himself. Its too bad, rails could have been even bigger. Now its just turning into PHP 2.0
I’m confused that people feel the need to protect DHH. Anyone who includes the words “Fuck you” in a presentation as response to criticism is perfectly able to defend them selves.
awesome post mark :)
— Corey ![]()
Eugueny, from everything I’ve seen — including going back through changelogs to the beginning — ActiveRecord was DHH’s implementation in Rails. He’s never claimed to have invented the concept of the AR pattern, but Rails was his creation to start with, which is why he can be overprotective of it. It’s his baby. And let’s be fair — it’s not as if all the other contributors aren’t getting mentioned throughout changelogs, Trac check-ins, and so on.
Mark’s post is still funny, and I think DHH does often come across as arrogant. I also, however, think most of the problems with Rails will be solved with or without his active assistance. He may think it’s a terrible idea, for example, to make Rails take advantage of a given database engine’s validation, logic and prepared SQL statements, but if enough other Rails developers think that just perhaps there is value in basic frickin’ fundamental things everybody else learned 20 frickin’ years ago,* he will be routed around. Arrogant or not, he’s right when he says — in so many words — that’s one of the virtues of open source development.
* Not that I am taking a stand on the performance value of letting the database do as much as work as possible rather than your interpreted language. Ahem.
“…fluffing me because they want something, or fluffing me because they just can’t help themselves.”
ROFL!
So this is what happens when a bunch of kids who can’t program and know nothing about language design get together and slap-fight about the latest super-high-level scripting tool that they learned about from Wired magazine.
I’ll think of all of you the next time it takes 30 seconds to load a web page with nothing but simple text on it (!) and is 3x as large as it should be because you can’t even write HTML without a WYSIWYG editor.
We need another net-bubble-burst to clear you folks out …
well DHH thinks scaling rails is “boring”
http://www.loudthinking.com/arc/000479.html
circa mid 2005 hahaha!
I am no longer accepting public comments on this post, but you can use this form to contact me privately. (Your message will not be published.)
§
© 2001–9 Mark Pilgrim