PHP, there is a good side

I’m a self-proclaimed Ruby evangelist.  I ask people all the time to challenge the assumptions of the platform they are working in.  I challenge people to keep an open mind.  Today, a friend of mine challenged me on twitter to do the very same thing about a technology I have trouble finding the good side of.  I know that others have already built a list, but I wanted to write this list independently of others.

Keep in mind though, this comes from a developer who now spends a significant portion of his time in marketing, sales, training and evangelism.  The things I see are from my context.

So here goes.  10 things I like about PHP.

1. An open community:

This does not stand in contrast to other communities, however, the php community seems to be very open and welcoming. From the outside, I see very few walls.

2. The community takes care of its young.

Along those same lines, the barrier of entry to PHP still seems to be kept quite low and welcoming.  Having been a part of the Rails community for quite some time, I’ve seen us forget about those trying to enter the community one too many times.

3. The ubiquity of CMS options

While we do have things like Radiant and such, we do not have as many options for quick content managed solutions.

4. The hacking culture is alive and well

If you think I mean this in a negative way, go read Hackers and Painters and come back.  Sometimes you just want to rip something out, not worrying about the ceremony of it all.  Get out a proof of concept quickly.

5. They respect and fight for web standards

The community has been some of the most outspoken people when it comes to truly open web standards.  They don’t sacrifice standards for tools like some communities and platforms.

6. They have great sales examples

I’ll admit, I’m completely jealous of the fact that they can say that Digg, The White House, and Facebook run PHP (even if Facebook compiles it down to C++ first … I think that’s a bit cheating).

7. Numbers

If you are going to analyze a technology you cannot help but look at mindshare.  The community is huge.  There is no denying that.

8. Diverse skill set

As I eluded to earlier, they take care of their young.  In doing so you have a lot of great developers, and a lot of developers that are good, and a lot of new developers.  For a community to thrive you have to have a great mix at all levels.

9. Microsoft support

Now I admit to saying this with a bit of a bitter taste in my mouth but Microsoft has thrown its weight completely and totally behind PHP.  No matter how much many of us like our Macs, Windows is here to stay.  If any community is to grow (especially in companies) it has to be a technology taken seriously.  In the Ruby and Rails community we have fought hard to keep Windows support there, but it has been almost entirely community driven (one click installer, etc).  MS has donated thousands of lines of code back to the PHP community to make sure it operates well.  Yes, I’m bitter.  If Rails had 5% of that kind of support, we would have a much easier time.

10. Easy to deploy

PHP comes included in everything.  If you want to get it out there on the web, its a no brainer.  Despite people thinking this is a softball answer, it is not and should be pointed out.  I personally believe it is a large reason many people choose it.

Do I think PHP is a good business choice?  No.  Do I think there are good things about the language and platform?  Do I think other communities could learn a lot from them?  Most definitely.

Thank you for once again, making me take a real good look at something and making me challenge my beliefs.

11 Comments

Filed under Uncategorized

11 Responses to PHP, there is a good side

  1. Yahoo runs on PHP, too, IIRC, so that’s another sales example.

  2. “Do I think PHP is a good business choice? No.”

    Having never read your blog, have you ever expanded on this? I notice your blog is a WordPress blog. heh. Ironic.

  3. I would also be very interested why you don’t think it’s a good business choice, given all the positive things you said about it. I wouldn’t expect you to pick it over Ruby, of course, but given software like CakePHP and WordPress to build on, I think PHP can be an excellent business choice.

  4. Also, *cough*facebook*cough*.

    But I will still bake you a pumpkin pie. :)

    • Um, yeah, I mentioned Facebook above. Great job editor

      • Haha, I saw that, but that’s why I thought it was funny you said you wouldn’t recommend PHP for business use, as mgraves said. :P

        But really, it’s a great post, and it’s always good to challenge our assumptions… about everything. :)

      • I’ve attended a few great talks given by Facebook Devs. One of the big business cases they highlight for PHP is that it has low barriers for entry. You can can get talented people who come from other languages or disciplines and get them up and running with PHP in a week or less.

        That said, I think this its greatest downfall, I think if you aren’t Facebook it becomes a lot harder to put together a good quality PHP team!

        In summary – it’s great for business for the reasons you highlighted, but it takes a good team to pull it off!

    • @Ben Waine, I think you’ve got it half right. Regardless of the language, if you don’t have a great team that works well together, enhancing each other’s strengths and compensating for others’ weak spots, you’ll find it much harder to ship a great site, product or project.

      I do agree that the variety of abilities of people who code in PHP is a very sharp two-edged sword. It’s cut me and my teams’ projects to ribbons numerous times. And, if you want to see something truly scary, go out to SourceForge and search for the number of PHP “frameworks” listed; it’s an absolutely mind-boggling number. PHPers don’t just reinvent the wheel; they reinvent every bolt, pulley and gear involved in building that wheel, or any of the equipment used to build that wheel, and on and on and on. You’ll see thousands of 0.1- to 0.3-level projects, and blessed few who’ve made it to 2.0 or beyond.

      But those projects that do make it usually do so by adapting; somebody posts a class project on SourceForge, PHPClasses.org or wherever that someone else stumbles upon, sees a neat idea, and bolts it on to their own framework. There’s an utterly mind-numbing amount of “wasted” effort. But, just like biological evolution, the survivors adapt, learn and grow.

      I used to love Ruby, back in the day. I tried to get involved/interested in Rails early on, and was very put off by the BSD-hackerish self-congratulatory snobbery built around a cult-like hero worship; the assumed superiority of the system “because it’s ours” even in the face of very real problems (Fail Whale, anyone?). Things may well have changed now. I quite hope that they have. But I have enough to do keeping my head straight with what’s happening in the areas I do concern myself with (PHP, Objective-C, DSLs/”small languages”).

      Just as you can write a Visual Basic program in any language, a great team can put out great software using almost anything. It’s just a lot easier with tools that work for you instead of banging your head with an 8-kg sledgehammer at every opportunity. Great teams scale to become great communities, and to lead communities to become great. We need more of those in our Craft.

  5. Pingback: Choosing A Language | Straylight Run

  6. Ruby sometimes gives me the impression it cares more about being cool then about being useful or much more important: Being consistent. Ruby Versioning is a world of its own, its seems nobody really understands.

    Ruby 1.8.6 is useful but the way features where merged into 1.9.2 is just a top-down approach that other successful OSS projects avoid.

    That Facebook scales so well with PHP says a lot.

    Growing up takes time.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s