php_logo

PHP Doesn't Do WordPress and WordPress Doesn't Do PHP

If there’s one thing I have been consistent on in the past (almost) 6 years of blogging and engaging on the web, it’s that I believe in the mantra “no sacred cows”. In politics, I confound and confuse members of both parties who look at life through sterilized lenses that reflect their party platform. I will often stir up controversy by dragging people into a process of debate that, while respectful, causes them to think and re-think their positions. At least that’s the goal. I am a fiercely independent thinker and though some of my closest friends are on the left, I’ve ruthlessly challenged the parts of the left that I don’t like while supporting the ones I do. I’ve done the same thing with folks on the right.

So as I prepare to write this article with an admittedly slightly inflammatory title, I expect it will cause some controversies – maybe, and perhaps intentionally, it will cause some rancor in the leadership of the WordPress community itself – the ones who set the tone and cadence for the rest of the community. This is not all bad and nobody can ever accuse me of not being consistent in how I approach issues I feel strongly about.

For nearly 10 years, I have been coding in PHP. For the past 4, I have spent my time focusing my energies on WordPress specifically. It seems to me that for software that is built on PHP, then, there should be some consistent crossover between the WordPress community and the PHP community. That natural convergence does not seem to exist however.

Early on, when getting started on the web, I hung out a lot over at the SitePoint Forums. It was there that, through a community of PHP developers of varying skill levels, that I cut my teeth. I knew nothing at the time and there were folks who were much more skilled than me. It was in the PHP 4 era (that era had just begun and has since ended) so there was no such thing as real classes and object orientation. XML parsing became a hot topic during those days as PHP devs wrestled with the best way (they were all ugly!) to parse XML. I was just trying hard to figure out how to connect to a database.

I spent months learning and picking up what I could and contributing back my learnt wisdom to other newbies along the way. The cycle of karma was great as people learned and taught each other.

Shortly after I left SitePoint in 2003, I started blogging (May of 2004). I started on Textpattern but within a week, as my curiosity about this new WordPress platform started hitting my ears, I switched over to WordPress. I joined the wp-hackers mailing list and began immersing myself in the WordPress community. Generally speaking, people were very helpful and I learned a lot.

Eventually, as part of that community, I would lead the technology efforts at b5media where my team was responsible for a very large WordPress farm. Having some of the best and the brightest working alongside me meant that my good understanding of the PHP involved in WordPress, and the event driven nature of its core, would increase to maybe very good.

Today, my business is WordPress. I just wrote the WordPress Bible. I do WordPress consulting. I run all my blogs on WordPress. I speak at WordCamps all over. Heck, I’m organizing WordCamp Mid-Atlantic again this year. I love the WordPress community.

During the writing of the Bible, Keith Casey, my friend and also a top developer in the PHP community (He works with Marco Tabini of PHP Architect – if that doesn’t give him street cred, I don’t know what will), offered to review anything I wrote along the way. I took him up on it even though I already had editors including a very WordPress-specific technical editor. My thinking? Having someone from the greater PHP community look at my code for the WordPress world can only make it better.

My question is, why doesn’t the rest of the WordPress world do this as well? We, as a community, can only be better by embracing the greater PHP community. We can learn things from them. They can learn things from us. Of course, the greater PHP community is going to scorn WordPress for remaining PHP 4 compatible when PHP 4 is end of life and I think that point has validity but that’s not the point. I think both sides can agree that WordPress has its way and it is not likely to change its philosophy on this soon.

However, what about the rest of the converging community? Why do WordPress people not participate in the major PHP conferences like Tek-X or ZendCon? Why was Beau Lebens the only WordPress guy that I’m aware of that attended any of the 7-conferences-in-14-days-roaming-conference CodeWorks?

Why is it that when WordPress developers are asked to speak at these events, they look down their nose in scorn (I can think of two specific incidents that have been related to me)?

Hey, if we’re going to have a war on PHP coding ability, I’ve got to side with the PHP coders of the world, not the WordPress coders. If we’re going to have a war on extensible platforms, well, I’ll probably go with WordPress.

My point is really simple: The WordPress community needs to abandon this concept of elitism and isolationism. Yes, isolationism only makes you isolated. Over the past six months, I have come to appreciate the greater PHP community more. I’ve rekindled my love for that community and the karma and learning that comes from it. I’ve discovered new things about PHP because I’ve opened my horizons again and got outside the WordPress box. Fortunately, by doing so, I can apply that knowledge and karma inside the WordPress world as well. It’s sort of like finally getting that water after being parched and thirsty for so long. It’s refreshing and gives new energy and drive.

So in 2010, I will continue to work inside the WordPress world to try to influence change. My code will reflect that change. I’ve abandoned PHP 4 (but again, that’s beside the point) and won’t work with it in my own work, plugins, etc. I hope to make a major announcement regarding some crossover and convergence in the next few weeks as well.

To the PHP World: Understand that the WordPress world is different. You already know this. We are a PHP 4 world for a reason, like it or not. We need some understanding. We also have our feelings on GPL and open source which don’t always jive. Work with us. Help us be better.

To the WordPress world: Get outside your comfort zone and embrace the leaders in the PHP world. I already mentioned Keith. Add Marco Tabini, Ben Ramsey and Cal Evans to the list of people to pay attention to.

Aaron Brazell

Aaron Brazell is a Baltimore, MD-based WordPress developer, a co-founder at WP Engine, WordPress core contributor and author. He wrote the book WordPress Bible and has been publishing on the web since 2000. You can follow him on Twitter, on his personal blog and view his photography at The Aperture Filter.

34 thoughts on “PHP Doesn't Do WordPress and WordPress Doesn't Do PHP

  1. I think that the biggest misconception about WordPress people is that all of us know WordPress code, so we must know PHP. Truth is, most of the WordPress people I know aren’t what you call coders – they’re designers. They spend their days in Photoshop and Illustrator – not immersed in PHP code or terminal. Therefore, even ifthey have an absolute understanding of what goes on under the WordPress hood, most of them couldn’t tell you a php variable from a Vega.

    I started out that way. I learned a little bit of PHP to get me by initially and have since then picked up more, but I have friends I call on for “heavy PHP lifting”. Plugin development, hacks, code snippits – I have a group of people I call on for those things, and I stick to doing what I do best – the artistic side.

  2. Obviously, it would be a good idea for wordpress to be up to date on the latest version of PHP, however, with such a large robust application, it takes time and people standing up to make a change.

  3. Great post. Coding is an art form and I think a lot of coders have the fear of exposing their art to others. It’s tough man. I haven’t coded in php now in years, and I’m going show my hacks to the likes of Keith Casey? No way! That’s hard to stomach!!

    Since there is always more than “one way to do it”, its even easier to assume that the way we did it, is good enough. As long as it works according to specifications, what more do you need? I am being sarcastic of course… sure, today the specs are fine, but what about tomorrow? The typical natural tendency is to use excuses… “not in the budget”, “client is sure they won’t need to scale up”, “no time today, we’ll worry about that then.” etc. etc. But worse then that, do we really know, what we don’t know? Can things creep in that had we put extra thought? Sure! These types of problems existing on an individual level, so imagine the bigger problems existing throughout a community.

    …so as a collective community of developers, it’s terrible that they don’t intermingle more!

    Truth be told, both projects are co-dependent. Where would php be today without enormously popular projects like WordPress? And where would WordPress be if php fell off the face of the earth?

    Growth is painful. The way we learn is by trying to do hard shit every single day. It’s painful and scary to do code reviews.. and frankly, I have been thinking about taking up Keith Casey’s offer to do some code reviews for some of our own projects, it’s not enough to have hot-shit developers on the payroll, you need help them flex their potential, push the edge and learn.

    Sure, egos may be bruised a little in the process but the knowledge gained could be invaluable. As two large communities, they should look to each other for this kind of support as well.

    Yes, sure, it’s not going to be easy.. and that should be good enough reason to try.

    Ernesto

    1. Good words, E. Truthfully, when plugin developers or core contributors submit their code to the core or release a plugin on the WordPress plugin repository, they are exposing their code to people like Keith. Not that he’ll see it, but it’s there if he ever wanted to look. Then your name is on it.

      I am working on a project right now that involved incorporating some additional features to an existing GPL plugin. When I looked at the code, there was really nothing I could do than essentially rewrite 70% of the plugin. This is not how it should be with proper coding standards (both WP coding standards and PHP coding standards).

        1. Yep, huge problem.

          And, I think that’s a leadership problem. Why AREN’T the leading WordPress devs not seen attending these PHP conferences and visa versa?

          1. Matt,

            I’ve gone out of my way to invite WordPress people for months… so far *none* of them have said yes. It’s ranged from people who I know personally to people I’ve never interacted with in the slightest.

            Other than saying “Please come, I’d love you to speak and participate!”, I don’t know what to do…

            Suggestions?

      1. Yes, and that’s why I strongly believe in Open Source projects. At the very least there is the -chance- of someone coming by and reviewing your code. If someone really wants to look at it, like you said, it’s there with your name on it.

        But even then there’s still a difference between submitting your code to repository that subsequently gets buried along with every thing else, compared to actively seeking reviews and commentary from peers.

        Multiply that several times over to the size of these communities, and it’s easy to see the mountain of junk that’s just not getting properly vetted. And, I suspect there’s a lot of coders that are just fine with that.

        So… to your post… how do you encourage more communication between the these two communities?

        At least writing about it and getting some discussion around it is a good first step.

        E

        1. As far as fear of being reviewed, to date the harshest review I’ve seen was not by Keith Casey but of Keith Casey’s project, and honestly it wasn’t really harsh–certainly nothing like some of the hoary stories of “OMG WTF n00b” forum posts.

          I think people are happy enough to get the chance to do public code reviews that they aren’t going to go out of their way to ridicule the reviewee. There may also be a moderating influence from doing it in a conference or a user group meeting where everybody sees the person being talked about in the room.

  4. A lot of the same things can be said about the Joomla community. I’ve been to several of php|architect conferences in the past 18 months and I always feel like I’m the only Joomla coder in the room. I don’t see a lot of Joomla coders engaging with the broader PHP community, which puts us at a disadvantage.

    At the same time, a lot of the PHP top brass seems to be oblivious to the fact that we’re not writing the next Facebook or Digg here: we’re writing content management systems. The vast majority of our install base is made up of low-mid traffic sites that are most likely going to stay that way. And for better or worse, these installations are going to be on servers where the site admins are not going to have complete control over the PHP configuration.

    I’m trying to bridge the gap by going to these conferences. I was glad to see that thephp.cc did an open source code review at Code Works this past October. And when they asked which project to review, I asked for Joomla. Why? Because I want to know what we’re doing wrong and how we can make it better. As a result of that session, I’ve already written two patches and made more recommendations to the Joomla community.

    1. Joe, you beat me to asking for them to review Drupal. Admittedly, I’m not as ensconced in the Drupal community as you guys are in the Joomla! and WordPress communities, but I have been to a DrupalCon and have toyed with submitting Drupal 7 patches. Nonetheless, I’m usually one of the few people who uses Drupal day in/day out at PHP conferences/user meetups.

      So I’m trying to entice more hard-core Drupal developers to attend user group meetings–hell, even to go out for a beer.

      I have noticed one thing about some of the stories of Drupal developers is that they came to it not from PHP but from Java or from frameworks like Ruby on Rails. So they don’t view themselves as PHP programmers because outside of the CMS, they’ve never used it.

      1. One key point:

        It doesn’t matter if the reviews are done if the patches and suggestions aren’t taken.

        After Ze Germans reviewed web2project at CodeWorks DC, we filtered the suggestions, prioritized them, and dove in. Within two weeks, we had one of the modules restructured according to the feedback and had dropped almost 2k LoC. when I told them at ZendCon of the results (3 weeks after CodeWorks), they were impressed that we’d taken the feedback (rare) and already started rolling on it. They agreed to do it again for tekX. :)

  5. Biased, but definitely a nice post.

    I think people are nailing it so far:

    * These groups need to play nice together at a *minimum*. They have complementary goals in mind… but that might not always be the case. Those cases need to be identified quickly and figured out.

    * All of the groups need to actively reach out to the others. This year alone, I’ve gone to two WordCamps (Mid Atlantic and NYC) and DrupalConDC… but only a handful of people from those groups have crossed back. Both sides need to work at this.

    * Both sides have lessons to learn:

    ** As Joe notes, people on Joomla aren’t building “the next Facebook” but they are building systems that get downloaded and used on tens of thousands of systems by a variety of people with a wide variety of skill sets.

    ** On the flip side, best practices from the wider PHP community for code quality, testing, standards, performance, etc can be brought into those communities.

    ** On the flip side, some of the WordPress instances are the size of “the next Facebook” and the problems that are being solved there are of interest to the wider community.

    But that’s my 0.02.

    Thanks for the thoughts and discussion Aaron, et al.

  6. Personally, I haven’t attended any WP or PHP conferences (Yet) but I’m definitely interested in participating in this kind of crossover discussion.

    I’ve been developing web applications in all sort of languages for many years, and I haven’t really seen too much purposeful crossover among application developers and general language enthusiasts. It’s usually a small core of architects that get involved in the language-side aspects of discussion, not your basic programmers. Joe, you illustrate that example beautifully.

  7. I’m not active in the PHP community for the same reason I’m not active in the Java, C#, or C++ communities.

    It’s a friggin’ language.

    The language I program code in is, basically, irrelevant to me. I can write code proficiently in about 40 languages, and am at the “very advanced” level in about 8 of them.

    I’m not interested in the language. I’m honestly not that interested in programming, even though it’s what I do for a living and I am quite good at it.

    No, I’m interested in the product. I’m interested in what you produce with the language, not the means by which you produced it. Yes, I can critique programming style with the best of them, and optimize code, and think about data structures, and blah blah blah… That stuff is *boring*. I can do that while half-asleep.

    But all that stuff is just a means to an end. The end is where the prize is.

    1. Agree, Otto, and I know you well enough from the WordPress world to know you’re very good at what you do. In fact, I would say that out of all the WordPress “hackers” you are one of the few I’d exmept from this diatribe.

      Unfortunately, too many of our community just look at the product and don’t take advantage of how we can make the product better. No one is asking that WordPress switch from ezSQL to PDO or that we backend it with, say, Doctrine. But better utilization and abstraction of code could help and the greater PHP community already is doing this and from my read they would like to help. But we discount their help and advice based on the “WordPress way”. I call bullshit.

      Just sayin.

  8. Good read. I think there definitely needs to be a change in mentality within the leadership of WordPress and PHP. I believe there is a lot of unhealthy ego and stubbornness on both sides. I think there needs to be less condescending attitude and more offering of help. I need to take my own advice as coming primary from the PHP camp, I have a condescending almost bitter attitude toward WordPress from the work that I’ve been involved in with it. What would be more helpful would be offering to help WordPress become better, instead of offering snide comments regarding the state of the code. I can’t help but wonder how much advice and help from the PHP community has been offered to WordPress and has fallen on deaf ears. Anywho, definitely room for improvement and I’ll be more than happy to help in any effort that pushes WordPress into better code and practices, after all it doesn’t seem like WordPress is going away and if I’m going to have to work with it in the future, why wouldn’t I want it to be better.

    1. Agreed, Anthony. Feel free to help. Like I mention in the linked article, a lot more PHP 5 stuff is going to be coming in. So help in some of those areas – refactoring of existing stuff with the intention of backwards compatibility or new features – are always helpful.

  9. This is why there is still a market for web developers. If all you needed was WP, a theme and some plugins, then why would PHP developers still have jobs? Why would anyone go to the trouble of learning Java, C#, ASP.NET, Python, etc.?

    I have always cautioned new web developers not to get too reliant on any open-source CMS. It’s somebody else’s product, somebody else’s code, and somebody else’s opinion of what constitutes a complete website.

    The popularity of an easy-to-use, free CMS is an obvious result of the DIY online marketing craze, and in particular the blogging craze. It’s popularity misleads people about its quality, though. The code in WP is not rock solid, and it definitely does not produce the end-all model for a complete website (especially not an e-commerce website).

    The problem that I face when I try to explain this to people is that they just don’t want to hear it. They’re already in love with WP, they’re drunk on the “community of users” Kool Aid, and therefore they just arogantly assume that I must not know what I’m talking about. I mean, the guy with the Macbook and the popular blog said WP is awesome, right? “Who’s this clown who doesn’t even have an iPhone trying to talk to me about the web?”

    I get this nonsense all the time. In reality, they are the ones who have absolutely zero experience in real web development.

    Take a few random “WordPress specialists” and tell them to set up a 301 redirect for you because you’re changing your URL structure from /yyyy/mm/dd/postname to just /postname and you don’t want to lose your search traffic. Nine out of ten of them will look at you like Bigfoot’s standing behind you. The WP theme/plugin business is the kindergarten coloring book of web development, and it’s high time that the PHP community relayed that fact loud and clear to the WP community.

    Of course, with all of that said, sometimes the client will request WP specifically, or it’s the only solution that their budget will support. I’ll have a copy of the WP Bible by my desk for when these occasions arise.

    1. Reading that post again, it came off with a lot more negativity than I intended, and I apologize for that. My real gripe is not with WP itself, but rather with the folks who sell “web development” services, when truly the extent of their experience is the installation/customization of a finished product.

      It’s likely that most WP folks would really have a lot of fun learning PHP more in-depth, and seeing how much more power they can add to the platform by writing custom code to go along with the core.

      1. As someone who sells these services, I’ve come to realize the space is big enough for everyone and that everyone has different expertise. My expertise tends to lie with big data migrations so, as a result, I’m very familiar with those redirects, xml-rpc, etc. I am not going to be good in other areas where colleagues are. Your gripe with the web services community needs to stop. It only makes you look bad. :)

  10. Well technically, since I was a speaker on the first day of CodeWorks, I (an Automattic employee) “attended” the conference. While I haven’t attended Tek-X (since it has happened yet), I have attended PHP Works once (as a speaker) and PHP Tek twice (both times as a keynote speaker). I was a speaker at ZendCon at least two times, and I once gave a UnCon presentation there that had the misfortune of Rasmusing the regular conference sessions.

    I’d have done more, but, unfortunately, I get a little bogged down on time so I miss a lot of applications.

    I suppose I should put more thoughts into a blog article, but the same argument can be said about Drupal, SugarCRM, and Joomla and PHP conferences.

  11. It is true that we need to support the community. and WordPress need announce about PHP5 also. When WP is going to have version in PHP5.

    I supported the community through writing blog and posting on few forums, like site point and ozzu.com (satya61229).

    1. That’s nice. That’s not what I’m talking about. And stop being religious about PHP 5. That’s one of the disconnects between the WP community and the PHP community. It’s not helpful.

  12. My clients don’t care about PHP 4 or PHP 5… They just want it to work.

    Then again, my clients think they want to update their own websites… until they have to learn how to use WordPress… then they want me to do the updates.

    Then I ask myself… Why did I do this site in WordPress?

  13. Historically there weren’t too many PHP folks involved with WP because they all used and/or contributed to Serendipity, so we didn’t mix much.

    Today, though, I don’t really feel there is that large a disconnect between the communities, especially in San Francisco where I see different PHP folks fairly often, even at things like the WordPress meetup at the pier. Today I have an article on PHP Advent. Terry is super-active in the PHP community.

    1. I’d say that if you’re using SF as your standard for measuring integration of the two communities, you’re looking at it from an extremely short-sighted perspective. WordPress is global. Some of the top devs in the WordPress world (Mark, Otto, etc) are not in SF. Some of the top PHP leaders are not in SF (Keith is DC, Marco is Toronto, Ramsey is Atlanta, Cal is in Germany Nashville, Shiflett is in NYC, Eli White is in MD… Terry is indeed in SF, though).

      Anyways… I’m going to go find that PHP Advent article. Thanks, Matt.

Comments are closed.