No.
Giving my talk: “The Underpants Gnomes Strategy Guide: An e-cards case study” at ZendCon 2006
[A real pissing contest after the jump.]
The problem is that Jeremy Privett is following the PHP internals mailing list. If he bothered to look at the archives he’d know this crap is as old as time and just as publicized back then as now. There were just as many egos then as now. Heck, some of the egos are the same.
See the forest from the trees.
Do we honestly think anyone cares what people say on php internals?
Cute girl: “What do you do?”
Me: “I’m a PHP Software Architect.”
Cute girl: “What’s PHP? It sounds like a drug.”
Me: “No, it stands for PHP Hyper… nevermind. It’s a web language.”
Cute girl: *blank stare*
Me: “It’s the thing that powers more websites than any other language.”
Cute girl: *blank stare*
Me: “Umm, it powers Yahoo!”
Cute girl: “Oh!”
*dead silence*
Cute girl: “Hey, does it ‘power’ MySpace?”
Me: “No, they use dotNet.”
Cute girl: *turns the other way and starts to talk to the other guy*
It’d be very shortsighted to judge the health of PHP from the internals mailing list. (Corollary: Don’t try to pick up a girl using PHP, reality <> fantasy.)
PHP should be more like Ruby (on Rails)
“As much as I hate to say this … You guys really need to take some advice from Ruby Devs.”
—Jeremy Privett on PHP internals developers
Yes, and maybe if we work really hard at promoting ourselves we can get a developer to create a site using PHP that will reach #700 on the internet that fails so often that they’ve ruined the cuteness of cats.
Oh Rasmus, why do you engage in this “virtual crap-flinging”? Can’t you lead by example like David Heinemeier Hansson? That guy is the height of maturity and an expert scalability guy.
The PHP Sky is Falling! If PHP doesn’t get it’s act together Rails will unleash their dogs of fury.
Who let the dogs out?
“First they ignore you, then they laugh at you, then they fight you, then you win.”
—Mahatma Ghandi
OSCON 2005:
“Unless you’re Ruby.”
—Danny O’Brien, “On Evil”
OSCON 2006 (Year of the Dog):
Out with the dog
This quote got me into a lot of trouble:
“Ruby is really good at what it does. The problem is, for what Ruby does really well, I can download WordPress. [Ruby is] really good at building those apps that have already been built before. PHP is good at finding out what the next WordPress is.”
—Terry Chay, “Interview with Terry Chay”, Pro-PHP Podcast
I was born in the Year of the Pig and it’s my year now. Out with the dog!
Here is one for you:
- People like me are smart and have to run extremely large scalable internet infrastructures.
- People like me have used Rails.
- People like me don’t use Rails to build extremely large scalable internet infrastructures
To the Rails developers that’s an inconsistent triad. They’ll say I’m actually dumb and I don’t “get” Rails. To me, it’s completely consistent (They’re right about me being dumb, but that’s what makes me smart):
And I’m going to tell it like it is:

Let’s have a little reality check. Yahoo! is #1 on the internet. Heck, even Tagged does way better than than #726 (#92 today, after a series of really bad site outages). And Tagged isn’t even close to the largest website written in PHP in its space (That belongs to #18, Facebook):
I remember before Yahoo! adopted PHP, every small site that I could find that used PHP I was shouting from the mountaintops—“NASCAR uses PHP!”
Twitter may be at 700, but it’s a great product and it’s probably the largest Rails installation on the internet. Before that it was…what was it? Oh yeah!
And how about that David Heinemeier Hansson guy? What a great guy huh?
If I were David Heinemeier Hansson, I’d be fellating Alex Payne right now for proving that Rails can scale, as long as you rip out all the stuff that makes Rails attractive in the first place. (Think of it this way: How many twitter clones are there? What was the barrier to entry? How dependent was twitter on hype? If they didn’t use Rails would have the lag time for using PHP or some other language hurt? Now isn’t that something to be proud of?)
But what does this so-called master of the PR do? Oh yeah.
Remind me, what is DHH doing lecturing al3x about scalability?
WWRD? (What would Rasmus do?) I’ll tell you what he wouldn’t do. He wouldn’t say that his largest installation can’t scale because they don’t know PHP. He wouldn’t write a book bragging a company that has never broken into the top 1000 can purport to tell you about success.
He also wouldn’t engage in this mudslinging or “pissing contest.”
But that’s why I’m around.
If Zend puts your photo on a deck of cards, you’ve either arrived in the PHP world or are a terrorist.
I’m a PHP terrorist.
Go look me up in the archives. I’m not even the one doing the pissing there. But I piss on whom I please, and say what I want, and Rasmus has to just shake his head and take it. (Hence the irony in WWRD?—get it now?)
Marking my territory by pissing on the Rails
Alex Payne isn’t saying Rails is crap; I’m not saying Rails is crap. We’re not even saying Rails can’t scale or Ruby can’t do the web.
I can’t speak for Alex, but what I’m saying is look at the top 100 websites on the internet: about 40% of them are written in PHP and 0% of them are written in Rails. (Yes, I can (and am) using this statistic to grind you Ruby fuckers into the dust.) But to me, there is an alternate conclusion, since 60% of sites out there don’t use PHP:
“The web problem ain’t that hard.”
PHP may be the best web language out there. But it certainly isn’t the only one. It’s one approach, one that stresses configuration over convention, stupidity over smarts, practicality over elegance: it’s one ugly mother f—er that gets shit done.
I didn’t choose Ruby on Rails because I hate it (I don’t, it’s a very clever approach). I didn’t choose it because Convention over Configuration is untested and unproven in the marketplace. I didn’t choose it because I didn’t want to be the guy saying “I’m not going to hire you because you don’t ‘get’ it.” I’m not going to get the Ruby religion because when it comes to languages, I’m an atheist. I didn’t want to be the guinea pig when Rails hit a ranking of 5000, or 1500, or 700, or 500, or 300, or 100, or 40, or 15, or 1 (Yahoo! and PHP, undefeated).
But al3x did (at least to 700 anyway). And that’s why Ruby on Rails world should stop having their own circle jerk and honestly address the real problems: Less “Oh, we just need to implement connection pooling or Query Cache. And, by the way, didn’t DHH just put that kid al3x in his place, that totally r0×3rd.” and more “How can we give scalable sites alternatives to Active Record? And, by the way, maybe those people who build really large websites daily have something to teach us.”
You want me to stop laughing? Then stop picking on your own and start proving me wrong!
Me, fully quoted
August 2006 (Year of the dog):
There are those answers out there and in many ways, since they’re web companies, PHP is an easy way to build those answers. Because there are things like Ruby out there. And Ruby on Rails is extremely good at doing real simple things like building a recipe database—you can do that in six lines of Ruby.
But the thing is [Rails] is a framework so you eat the entire framework when you do that. PHP has no framework. You can choose to use a framework but it has no framework. So look at the problem. You don’t start with anything [and that] hurts you initially, but it really helps down the road because a lot of these answers are not simply: let’s build an e-store and somehow magically make money. The answers you have to construct are Web 2.0-style answers, they’re not simply reducible to selling dogfood on the web—they’re more complex answers than that. So you require a language that can navigate that complexity without forcing you to eat that framework that boxes you in and colors the lines for you to build that web database…
I know it sounds like I’m ragging on Rails, but I’m just trying to emphasize the strength of PHP. I like to say that complicated systems must always have simplistic behavior because they’re too complicated for people to understand. It is complex systems built on simple ideas that can have complex behavior. And PHP, while it doesn’t have the advantages of quick-start that Rails gives you, does have advantages in its flexibility, its pragmatism, its stupidity (if you will) that allow you to build those complex systems by stringing together a bunch of simple ideas.
If there is one thing I want the listeners to take home it’s that eCards or whatever, this is just one perspective of how I built one thing. But there is a general answer there—like Louis Pasteur saying, “Chance favors the prepared mind”—there is an opportunity in the listener’s institutions where PHP is a very powerful tool, very easy to understand, waiting for the listeners to use to build these amazing complex systems by stringing these simple things that PHP gives us.
…
I’m really low on my scatological count here…I’m sorry I didn’t crack enough jokes or use enough [cuss words], but I’m sure people will forgive me. They can just attend one of my talks and get their cuss quota for the year. And if not, coding these web apps themselves involves a lot of swearing—a lot of blood, sweat and swear.
…
Ruby is really good at what it does. The problem is that for what Ruby [on Rails] does really well, I can download Matt Mullenweig’s WordPress… It is really good at building those apps that have been solved before. PHP is good at finding out what the next WordPress is, what the next CMS is, or wiki is.
It is a very configurable, flexible language for answering those questions and it doesn’t strap you in and say, “PHP. The only way to do things.” It can’t do jack without Apache, without MySQL or another database like Oracle, or Java or C or accessing the command line to get shit done. Because of that, it’s never going to tell you that you have to do it “the PHP way” whatever the hell that means as opposed to do it the way you want to because you happen to have this nice tool whether it is imagemagick or whatever.
And that is where PHP is strong.

















