Jeff Atwood is a muppet.

I was having a nice, relaxing Saturday morning until I read through my Twitter timeline and was directed to Jeff Atwood’s latest post on Coding Horror, “The PHP Singularity“. After reading through it, and the comments from other readers, I got annoyed. Really annoyed.

I won’t repeat the article, but the gist of it is:

  • PHP is a horrible language
  • Something must be done
  • Jeff is the person to do it

I quite enjoy blogging but I don’t do it very often. I try to make sure anything I talk about is well researched, because a baseless opinion is worthless, but I don’t have a lot of free time – so if I don’t have something I consider worth saying, I don’t say it.

Jeff doesn’t have the same concern. You may wonder why I read his blog, given that I clearly take exception to some of its content, but the funny thing is that when talking about things he is knowledgable of, he has some great advice.

Like when he talks about his children, because he obviously knows them, or routers, where he’s clearly done some investigation. Now, I’m about to become a father, so I really enjoyed the former post, and if I needed to buy a router, I’d probably just be lazy and pick one from the latter because he knows a lot more about them than I do.

But here’s the thing. Jeff doesn’t seem to know much about PHP. I’d guess he’s read some posts about it, seen a few Q&As on Stack Overflow about it (a site he deserves massive kudos for), read through the PHP Manual, whatever – but he’s not a PHP developer. When he says PHP is ‘terrible’ or ‘deeply flawed’, I wonder how he’s come to that conclusion? Has he ever developed anything substantial in PHP? What is he basing this opinion on? He’s played with his children, he’s bought and installed a router. But when it comes to PHP, is the extent of his knowledge that which he has gleaned from others? Because if that’s the case, he really should think twice about offering his opinion on it.

The most glaring statement in the entire article is this one:

Therefore, I’d like to submit a humble suggestion to my fellow programmers. The next time you feel the urge to write Yet Another Epic Critique of PHP, consider that:

  1. We get it already. PHP is horrible, but it’s used everywhere. Guess what? It was just as horrible in 2008. And 2005. And 2002. There’s a pattern here, but it’s subtle. You have to look very closely to see it. On second thought, never mind. You’re probably not smart enough to figure it out.
  2. The best way to combat something as pervasively and institutionally awful as PHP is not to point out all its (many, many, many) faults, but to build compelling alternatives and make sure these alternatives are equally pervasive, as easy to set up and use as possible.

How anyone can offer a ‘humble’ suggestion and then go on to question the reader’s intelligence is besides the point (though it does nicely illustrate Jeff’s technique of drawing the reader in with deference only to hit them with a massive dose of self-righteousness) – but there’s two things I really take exception to here. Firstly, as anyone who has spent any real time with PHP knows, the language is far, far different now to what it was in 2002. For heaven’s sake, PHP5 (with a brand new object model that made proper OOP possible) didn’t make its debut ’til 2004, and support for register_globals (one of the worst features of PHP, ever) was removed in the most recent version, 5.4. Those facts are available under PHP’s entry on Wikipedia, but perhaps Jeff’s not smart enough to Google the history of PHP before commenting on it?

Secondly; assuming for a second that PHP is as horrible as he deems it to be – the best way to ‘combat’ it isn’t to ‘build compelling alternatives’ and ‘make sure these alternatives are equally pervasive, as easy to set up and use as possible’ – no, the ‘best’ thing to do (considering the amount of developers and sites worldwide who depend on the language and are getting things done with it every single day) is get involved with and actually understand PHP – read the internals mailing list, make requests for comments, code contributions, etc. It’s a silly person who decides to try something new before attempting to fix what’s broken, when there is so much invested in it. Perhaps if Jeff wasn’t trying to drum up interest in this new project of his, he’d have been a little less inflammatory?

Look, as someone who has used PHP successfully for the last decade, obviously I’m going to disagree with Jeff’s opinion. But the language has not only helped me get a great job, a nice house, and will shortly be helping me pay for one of those baby things, it’s also made Facebook the biggest website in the world, and enabled Yahoo! to build (ok, and throw away, but it’s not PHP’s fault) an empire. When Jeff’s got off his soap box and tried to build something equally successful in PHP and failed, I’ll start taking his opinion seriously.

As I said, I don’t like making statements unless I’ve researched them fully. I’ve read Coding Horror for a long time, and I feel qualified to say that Jeff Atwood is a muppet.

Posted June 30th, 2012 in General, PHP.

11 comments:

  1. Jonathan S.:

    You’re missing the point. PHP has fundamental flaws that are real and aggravating for most people who know several languages. If it works for you, great, good for you. Most of the people who rabidly defend PHP are single-language developers who aren’t interested in understanding the criticisms. I’ve tried to write complex software in PHP (at the insistence of an employer) and was nearly driven to madness. It’s impossible to debug. When an error occurs it just plows forth. php.ini. It’s a complete horror show of misfeatures and unnecessary complexity.

    “It’s a silly person who decides to try something new before attempting to fix what’s broken, when there is so much invested in it.”

    Look, the whole point of the double-claw hammer is that there are some tools that are just so fundamentally broken, you shouldn’t use them. Also, that’s a retarded argument, there are plenty of reasons for learning a variety of languages, as each has their own strengths, weaknesses, and approaches to solving problems. The point is to expand your horizons, not to keep beating your head against the wall convincing yourself that “hey, this is just programming, it’s hard!”

    Besides all that though. Why are you taking this so personally? Jeez, he’s attacking the flaws of a language, not you personally. Why are you calling him names? You should take a look at how wrapped up your identity is in being “a PHP developer.” They say a craftsman never blames his tools. A craftsman also never confuses his own identity for that of his screwdriver.

  2. Matt:

    Atwood’s PHP article – many of his recent articles – are not much more than inflammatory link bait. (After which he rarely if ever participates in the subsequent conversation.)

  3. Craig:

    I don’t think I’m missing the point – if multi-language developers (of which I am one, don’t assume PHP is all I do) don’t like PHP because it doesn’t compare favourably to another, they don’t have to use it. Every language has drawbacks. Java’s as widespread as PHP, but he doesn’t write an article complaining about how ‘Java leads developers to over-engineer’ or ‘Java uses so much system resource it’s killing all our penguins’. Instead it’s picking on something which he knows will get a reaction and get him some traffic, which I guess I’m guilty of falling for.

    This isn’t about language debating, because everyone knows that’s pointless – what I was trying to say (and admittedly I was quite annoyed when I wrote this so I may not have done a great job of it) was that there are plenty of people who do use PHP, are aware of it’s quirks and are fine with it, and have even spent considerable time contributing to it for little reward, who don’t appreciate someone with no real experience of the language spreading FUD.

    As for taking it personally, you’ll have to believe me when I say I haven’t, I was just frustrated that yet another post written by someone with ‘clout’, based on inaccuracies, was getting traction. The title of the post was just lighthearted fun, a bit of linkbait which I didn’t think Jeff would mind, given his propensity for it. I do have respect for him, and tried to make that clear in the article.

  4. Craig:

    Yep, exactly. If he genuinely has insight into what makes the language bad, he could get involved and improve it. Everyone would win then. But instead he’d rather allude to this ‘replacement’ he’s working on – which may be marvellous and perhaps I’ll end up using it, who knows? – which is frustrating. I would just have liked to have seen his criticisms contextualised and justified with some evidence, and a tad more humility.

  5. Angry Geometer:

    “If it works for you, great, good for you. [Except now I'm going to shit all over you on your own blog, to show how much I don't care.] Most of the people who rabidly defend PHP are single-language developers who aren’t interested in understanding the criticisms. [My hate makes me smarter than you and thus I don't have to listen to you.] I’ve tried to write complex software in PHP (at the insistence of an employer) and was nearly driven to madness. [At no point did I consider the fact it might be due to my own lack of skills as a developer. PHP is simultaneously too hard for me, and only used by people dumber than me.] It’s impossible to debug [if you don't know how to use a PHP debugger, which I don't]. When an error occurs it just plows forth [because I don't know how to set error reporting levels, a thing covered in any beginner PHP book].”

  6. Jeff Atwood:

    Am I a man or a muppet? Hard to say.

    http://www.youtube.com/watch?v=cRTjksM3YAs

  7. Zman:

    Personally, I’ve never wrote anything complex with PHP.
    But quite frankly, I don’t see any reason why I should. There are so many better alternatives that achieve better performance, maintainability and are not intended solely for the web. ..

  8. Craig:

    That’s fine – if you haven’t found a need to use it, I’m not going to try to convince you that you should :)

    I find that given the sort of work I have to do, with the requirements I’m given, PHP is often a really good fit. Sometimes it’s not. When I do use PHP, I don’t have a problem with performance. I don’t have a problem with maintainability. The language doesn’t cause me any problems at all, which is why I continue to use it. If it did, I’d stop.

  9. Craig:

    :) This is why commenting is a good thing. I’d never seen that, now my day has brightened up spectacularly.

    Seriously though Jeff, I hope you realise that the article (and especially the title) was meant to be lighthearted- I’m all for constructive criticism of PHP (or any language, or technology I use) because it should ultimately make my life easier, and hopefully that’ll feature in future posts of yours on the topic.

  10. In Praise Of Quick And Filthy | TechCrunch:

    [...] true problem with PHP lies in the community,” not the language. Or they just result to ad hominem attacks. Or, well, sometimes they just stop defending it at all. I mean, it’s really hard to defend a [...]

  11. Fred Haegele:

    Php is AWESOME. What other languages have http methods already built into it? Sure, you’re not going to build a state of the art search engine with it, but what other languages out there can you use by itself– without installing some ridiculous framework– and still produce a decent app from it? With PHP you choose your own workflow, your own destiny, instead of following the arbitrary rules of a framework or community.

    Those who bash PHP don’t understand it. It’s not really a language. It is a template language- and it has only been a good 10 years it has been considered to be a viable scripting language. PHP is still young. Those who spend years working with Java and C bash PHP for its OOP facility. It is 2012, and PHP is still scripting language with a few comp sci principles adopted to it. So what? That’s what it has always been.

    I’m sick of people bashing PHP for what it can’t do. Instead, embrace it for what it CAN do: Community sites, blogs, wikis, simple stuff. Don’t put your life’s work , or stake your thesis in comp science on PHP. Programming with PHP is about simple design patterns- nothing more. And with that, you can stay emplyed for years.

    You wanna know the funny thing about these people who bash PHP? 99% of all the negative writeups I have read about PHP have been on WordPress blogs hosted on shared servers. FIGURE THAT ONE OUT!!

Leave a response: