If you’ve read the title of this post, then it probably comes off as no surprise. When it comes to working with WordPress, maybe it’s even obligatory for someone like me to cover.

I don’t know, but I hope that doesn’t dissuade anyone from ignoring the rest of the words in this post.

But I do know that I’ve seen a lot of other WordPress developers and those involved in the community in some regarding talking about the latest results of the Stack Overflow survey and where WordPress falls.

That is, it’s high up on the list of “most dreaded technologies.” Before I share my thoughts, there are a couple of articles (and they are quick) that are required reading before proceeding.

The reason I want you to read those two articles is because they provide some background and perspective on where I’m going with my own take regarding this topic.

The Dread of Working with WordPress

I have almost nothing more to add to the topic of working with WordPress and the dread it causes some of the developers who are surveyed.

Chris did an unsurprisingly good job framing the current situation in a way that’s clearer than merely seeing a significant percentage and “WordPress” and “Dread” in the same sentence.

Is Working with WordPress Really Dreaded?

Is WordPress Really Dreaded?

I do hope a lot of people read that post and take the framing of the data as he’s presented it.

The only thing that I would add is that this is not the first time that WordPress has appeared as a dreaded technology in the Stack Overflow results survey.

The results weren’t all that different in 2015.

Our Background in WordPress

For one reason or another, this is the first time I’ve seen those of us working with WordPress raise serious concerns about the results of the survey.

I’m not trying to be dismissive about this. It’s important for us to take note, to determine why people don’t like working with WordPress, and then to determine what’s the best course of action.

Perhaps there are things that we can do in order to make it a more pleasing experience. I’m sure everything has a wish list (though I’m not asking to read it in the comments right now :).

Attracting Developers Who Are Working with WordPress

Attracting Developers To WordPress

And perhaps there’s not much to do. This is subjective, though, and I think it depends on what you consider to be helpful when working with WordPress. For example, is it the need to have code completion in your IDE of choice? Is it the desire to have better dependency management through something like Composer? Or is there some other tool that’s yet to be created that you think we need?

Whatever the case may be, people come into the world of WordPress with a variety of different backgrounds.

  • Some get their first taste of development with WordPress so they know nothing different.
  • Some come into WordPress from different backgrounds and are used to their previous work.

I’d argue that the second case can be cause for some serious pain points if for no other reason that humans generally don’t respond well to significant changes.

This one hits close to home.

When we move from what we know to something we don’t know, then there’s going to be friction – even tension – and how we respond to it ultimately plays a role in how much dread we have for the technology.

Case in point: If you’re coming from .NET or Rails and you move over to working with WordPress then there is a very stark difference that requires a shift in thinking, in tooling, and in paradigms.

But humans are also incredibly good at adapting. Then again, we’re also not particularly fond of staying with something that makes us feel uncomfortable.

Given the size of the WordPress economy, the growth that we’re seeing with the platform, the reach it has both as a technology as an as a community (that meets with one another all around the world), I’d make the case that there are plenty of us who are enjoying the work that we’re doing.

  • Does that mean we have all the tools we want? Nope.
  • Does that mean that it’s all rainbows and butterflies when it comes to working with other people? Negative.
  • Does that mean that WordPress is in the most pristine condition it can be in for those looking to build things with it? No.

But it does have a certain allure for people. And we end up staying, continuing to write about it, talk about it, build things for it and on it, and end up making a living on it.

Does This Breed FUD?

Imagine for a moment that you’re a young developer or a new developer and you’ve decided, for whatever reason, to get started working in development and you’ve opted to use WordPress.

Then you read survey results like the ones that are being discussed here, and you read some of the comments, tweets, and other articles about the results.

If you’re not ready for it, it can completely blindside you.

That is, it will have you second-guessing the path you’ve chosen for your career (or just your hobby) arguably more than anything else shy of someone telling you that your work sucks.

Your Work Might Suck (For Now!)

If this sounds like you, the first thing to note is that everyone’s work sucks at first. Everyone’s. I don’t know a single programmer who looks back at the things they were working on early in their career and thinks:

Man, I can’t believe I wrote such fantastic code when I first started out.

Truth be told, I have plenty of work in the repository and on GitHub that I’m not proud of, but that’s okay. Because the work I’m doing now is something that I am proud of and it will eventually eclipse what I’ve previously done.

Isn’t that what most programmers want to be able to say? I hope so, at least. Otherwise, I’m severely misguided. But I digress.

Seriously, though, things like this that are no different from any other hobby, career, or interest (although we often try to treat it differently).

  • Few people start off excelling at playing a musical instrument.
  • People aren’t naturally born with the highest level of fitness possible.
  • Very few people can sing incredibly well without some training.

And the same goes for programming. So don’t let this type of stuff contaminate your thinking in that you’ve made a bad choice.

Don’t Start Second-Guessing

If you’re someone who’s in a position where you’re second-guessing your choice as using WordPress and its associated languages and technologies as the backbone of your career, then stop.

I know, it sounds overly simplistic but hang with me as I’m writing this from direct experience.

There was a point in my career where I left the corporate world that was full of enterprise-level tools, processes, conferences and all of the exciting things that come with it, opted to start my own business, and chose to base it exclusively on WordPress.

Pressware

Throughout the journey from deciding to quit my job and work for myself, I second-guessed almost everything I did. This isn’t to say I didn’t want to work for myself, it’s that there was this constant wanting to make sure I was making the wisest decision possible for myself and my family.

At this point in my career, I’ve worked longer for myself than for any other organization. Hindsight is 20/20, sure, but I’m incredibly fulfilled in what I do and with the languages and tools with which I work.

On top of that:

  • I’ve continued to improve my development skills through the resources available through open source (the least of which is not the ability to read through other people’s code).
  • I’ve met some incredibly, incredibly talented people via both Twitter and meetups who have served as great people to bounce ideas off of. I’d list them all here if I could, but there would be hundreds of names. Literally.
  • I’ve attended multiple conferences and spoken at a few and learned many things about some different technologies that are available.
  • I’ve met numerous people online who I’ve ended up Skyping with, meeting in person, working with, and even having them over to my home. These have become legitimate friends.
  • I’ve learned what it means to work with a ticketing system larger than any other closed-source program I with which I’ve ever dealt.
  • I’ve had plugins rejected, theme code reviewed (harshly, even – and that’s a good thing!), and products fail.
  • I’ve tried to educate others on various development topics.
  • I’ve taken praise and I’ve taken criticism.
  • I’ve learned from others not only about different subjects of development but also how to manage community interaction on something as simple as a blog.
  • I’ve become a better person through many of the above interactions.
  • And there is so very much more (and I know more is yet to come).

All of this has happened because of WordPress.

So don’t let the FUD creep in and have you wondering if you’re going to be able to keep up with whatever other technologies are available.

There are always going to be other technologies available and if you spend all of your time chasing whatever is new then you’re never going to be an expert at anything.

You’re going to have a wide breadth of knowledge of what’s available, but no depth of knowledge on what you can do with any of it.

Don’t Forget Our Stack Exchange

Finally, although working with WordPress is considered a “dreaded technology” by a segment of the Stack Overflow audience, it’s worth noting that we do have our Stack Exchange (which is the foundation of Stack Overflow).

Working with WordPress on Stack Exchange

The WordPress Stack Exchange

Having a community have its own Stack Exchange is not a simple matter of spinning up a site either. There’s this whole democratic process that it has to undergo before a site like this is spun up.

Don’t believe me? Check out Area 51 and read the FAQ. It mentions the following:

A good Q&A site needs a lot of people to support it, so users are asked to invite their friends and help build the community. Continuous participation is really, really important because each phase of the proposal has different ways to get involved.

This means that enough people must be active for a long enough period of time that there’s enough support to start a site.

And though we may be a dreaded technology, we were able to move out of the experimental phase that is Area 51 and on our own site.

For a technology that’s dreaded, that’s impressive isn’t it?

There’s Always Room To Improve

Although I think there are definitely some areas that we can improve as it relates to working with WordPress, I think it’s also worth making sure we’re keeping everything in the proper context.

The application has done a lot of good for the world, and it serves a lot of people in a lot of good ways.

There are areas that are ripe for improvement and having constructive conversations on how we can achieve that are worth having, but camping out too long on the idea that other people don’t like working with WordPress isn’t productive.

I don’t like working with certain other technologies and I’m sure the same can be said about you, as well. And in that situation, I opt not to use those technologies, stick the ones I do like, try to learn them to the best of my ability, and make things better when possible. I ignore the rest.

So is it really that big of a deal? In some ways, it may feel like it, but remember the big picture:

WordPress is a successful open source project that’s going to continue to grow, continue to develop, and continue to improve.

We’re going to have mistakes and we’re going to have successes. It’s not going anywhere, though. And that’s exciting because I’d rather work with it over any other technology right now, and I definitely look forward to all of the other benefits it offers – from code to meetups and podcasts to WordCamps – as well.

Category:
Articles
Tags:

Join the conversation! 13 Comments

  1. I loved this article! Thank you!

    I was dreading WordPress, in fact I was one of the haters. I got myself into development and quickly jumped on the cool new tech wagon and started riding along and preaching forward whatever I was preached to myself.

    Then I start a new job with a fantastic team. And I’m thrown into a WordPress project.. damn I thought.. But .. What? Why? and now? Turns out I actually love it, there’s a beautiful balance between developing good code and human code. I never expect to build a google out of a WordPress site ( and honestly now I think a lot of people who hate WordPress start off hating it by thinking it’s not good enough for them, and the sort of “what if my blog suddenly ranked higher than facebook in Alexa, would WordPress accomodate?? I better go with Jekyll…” ..

    I have now reached a really happy place, I like writing a Laravel app, I like playing around with React JS.. And I love writing WordPress code, to me it’s happy.. template tags don’t make me sad.. the loop doesn’t make me sad.. and if it did, I get Twig to cheer me up.

    I’m now designing my website in WordPress.. I’m gonna blog the love. And hey.. Tom, you were one of the few people that made me fall in love with WordPress, so thanks!

    • Turns out I actually love it, there’s a beautiful balance between developing good code and human code.

      Agreed. This is something that can be done in almost any language, of course, but WordPress allows it and the standards, though not really 1:1 with the PSRs, aren’t bad IMHO.

      But when and while I work with WordPress, I enjoy using it for a number of reasons the least of which is not how good the code can be written.

      and honestly now I think a lot of people who hate WordPress start off hating it by thinking it’s not good enough for them, and the sort of “what if my blog suddenly ranked higher than facebook in Alexa, would WordPress accomodate?? I better go with Jekyll…”

      Yeah — WordPress can handle that stuff just fine if it’s setup correctly. I mean, it doesn’t matter what you use if it’s not setup correctly. But WordPress scales and there are a number of resources that walk you through how to do it especially for super-high traffic sites.

      I have now reached a really happy place, I like writing a Laravel app, I like playing around with React JS.. And I love writing WordPress code, to me it’s happy.. template tags don’t make me sad.. the loop doesn’t make me sad.. and if it did, I get Twig to cheer me up.

      Exactly! It’s never an all or nothing type of thing :).

      I’m now designing my website in WordPress.. I’m gonna blog the love. And hey.. Tom, you were one of the few people that made me fall in love with WordPress, so thanks!

      Wow. I sincerely and really appreciate hearing that. Thanks so much!

  2. Without any follow-up questions or context, that SO survey is pretty worthless and nothing for anyone to get worked up over. SO defined “dreaded” as simply not expressing any interest in continuing to work with it. So what does that mean exactly? Everyone’s going to interpret that differently. If they even put each response on a likert scale that would have at least been a little interpretive. Plus I’ve noticed some people really like to hate on WordPress with no real reason.

    I dread working in WordPress when I’m handed a clusterfarg of jumbled-up Christmas lights of a WP site. Who doesn’t? Doesn’t mean it’s my most-dreaded technology.

    • Everyone’s going to interpret that differently. If they even put each response on a likert scale that would have at least been a little interpretive. Plus I’ve noticed some people really like to hate on WordPress with no real reason.

      I agree with you. And the thing is that I’m not trying to defend WordPress in the sense that everyone should like it, but if you dread it or dislike it, at least have your reasons for it.

      Like you mentioned, lack of context leaves much to be desired.

      I dread working in WordPress when I’m handed a clusterfarg of jumbled-up Christmas lights of a WP site. Who doesn’t? Doesn’t mean it’s my most-dreaded technology.

      LOL, I know, right?

  3. I think there’s an issue with this analogy:

    “If you’re coming from .NET or Rails and you move over to working with WordPress then there is a very stark difference that requires a shift in thinking, in tooling, and in paradigms.”

    Most developers LOVE learning new technologies. The caveat is they have to learn something that’s a step up from before. The recurring issue is that they feel they’re regressing when they have to use WordPress.

    You’re not shifting tooling. You’re losing them. The WordPress way is mostly procedural programming. That’s also a step back.

    I also liked Chris’s blog post. He covered an important point:

    “We know that it carries baggage. That’s just a reality. That’s not a WordPress thing. It’s a “you lasted longer than all the rest and are everywhere, but you’re showing signs of your age” challenge.”

    I also brought that up last week on Twitter:

    “The #1 thing that never comes up in a “We need to modernize #WordPress!” discussion is acknowledging that it’s a legacy application.”

    You can’t modernize a legacy application easily. There are conflicting interests at play. Automattic (and by extension core) want to improve WordPress the product which is the user-centric application. Developers want to use something better which requires modernizing the application architecture.

    Automattic isn’t going to prioritize the later. You’re speaking about countless developer hours. It’s also a LOT harder to modernize a legacy application. They’d need to shift their best resources to it.

    That’s just not going to happen. It needs to stay focused on the product. It’s competing against Squarespace, Wix, etc. Matt needs to worry about what’s coming after WordPress. Not incremental upgrades.

    That’s the reality I never (or rarely) see anyone discussing. I still think it’s possible to make changes, but, as long as we ignore this reality, I feel we’re beating a dead horse. That’s how I feel whenever the topic comes up.

    • Oh wow .. this dude nails it. Almost my thoughts exactly .. It was the huge user base and market share that got the developer community interested in WP and not the other way around.

      Matt’s primary challenge will always be to maintain that market share and increase it, so the focus will be on guys like Wix, Weebie etc who are slowly but surely eating into this space from the bottoms up and not so much what a survey on SO says.

    • Most developers LOVE learning new technologies. The caveat is they have to learn something that’s a step up from before. The recurring issue is that they feel they’re regressing when they have to use WordPress.

      You bring up a good point. In terms of learning new technologies, I’m of two minds on this: When I was a bit younger, I loved learning new technologies. I still do, but it comes at a different expense than it once did so I have to handle it differently than I once did.

      When it comes to using WordPress, the regression makes sense. Such is the case of having backwards compatibility, but I also like having a definitive stack with which you can go deep into and really get a deep knowledge of the things that are used. Eventually you’re bound to get bored or feel like certain things are tedious, but I’d venture to say that’s the same with almost anything we do.

      “We know that it carries baggage. That’s just a reality. That’s not a WordPress thing. It’s a “you lasted longer than all the rest and are everywhere, but you’re showing signs of your age” challenge.”

      This is a good quote (and I think it even ties into my own comments above in terms of having to approach new technologies differently than I was 10 years ago).

      You can’t modernize a legacy application easily.

      +1

      That’s the reality I never (or rarely) see anyone discussing. I still think it’s possible to make changes, but, as long as we ignore this reality, I feel we’re beating a dead horse. That’s how I feel whenever the topic comes up.

      I don’t really know if it will be discussed. When certain, innovative things are brought up or are raised, they are often shut down in some way so why bother discussing it? I’m not saying that’s a good thing — just an observation. Secondly, I’m with you in that there are plenty of things that should be discussed, changed, adapted, upgraded, etc.

      I really like the feature-plugin-to-core model, but it’s not yet at a place where it can bring it things that are newer. It’s mostly adjusting/adapting/improving something that’s already there.

  4. @Carl: There might be an assumption in the first part of your comment … that all or most developers are coming from an environment that is better (however that is defined). I’m not sure that is the case. In any event, I agree wholeheartedly with the insights that WordPress has legacy baggage and some of what that entails.

    Drupal dumps the whole code base and starts over. This last round was pretty painful. So it might be 6 one way and half-a-dozen the other.

    I’m not sure that the “WordPress way” dictates procedure programming. Can you please explain? For example, it is possible to write a plugin using OO code, but maybe we are not thinking about the same things.

    • Yeah, I don’t think the Drupal experiment was the way to go either. Rebuilding everything is too time-consuming and complicated. That’s what I was alluding too when I spoke about the different priorities. Drupal spent a lot of resources on that rewrite and I’m not sure it ws worth it.

      I think that a lot of developers start with WordPress, but the good ones don’t stick around. There are a few reasons for that, but one of them is this regression I spoke about. If you take the time to learn Rails, Angular or something else, it really feels like a huge step back.

      You can write a plugin using object-oriented programming. The issue is that it’s hard and doesn’t feel too rewarding (unless you’re looking to learn). It’s important to not confuse the fact that you’re using a class with object-oriented programming. You can use a class and still do procedural programming. That’s what most of the examples do.

      I write a ton about WordPress and object-oriented programming. If you want to learn more, you should take a look at my site. :)

  5. I am (very)new to WordPress but not to programming in general. I don’t think you can compare WordPress to another language ( Rails, Angular etc). WordPress is better compared to another blogging or CMS software/platform. I also think it is easier to support and encourage participation in the huge WordPress user base with filters and actions as opposed to inheritance and interfaces.

    ” copy and paste this function and add it to the bottom of your functions.php” is much easier than “please implement the following interfaces…”. No It does not work if you are behind a corporate firewall building an app to implement the 401k self-service module. But it does work when you are trying to a build a huge community with varying skill sets. On the other hand no one is prevented from implementing every design pattern in the book. WordPress is fun, useful and helps a lot of people.

    • I don’t think you can compare WordPress to another language ( Rails, Angular etc). WordPress is better compared to another blogging or CMS software/platform.

      I agree — I don’t think WordPress is a language nor is it a framework. It’s a foundation. I’ve talked about this in a few posts (see this post and this post as examples).

      WordPress might use things such as Angular that you’ve mentioned, but it can’t use something like Rails. It might communicate with a Rails app, but that’s about the extent of it.

      I also think it is easier to support and encourage participation in the huge WordPress user base with filters and actions as opposed to inheritance and interfaces.

      Those aren’t mutually exclusive, though. Knowing how to use hooks is important (and I’d say they are really required) for any WordPress development, but when you’re building even moderate sized plugins and apps, using good object-oriented practices shouldn’t be neglected.

      This is why I, say, recommend an interface for meta boxes.

      ” copy and paste this function and add it to the bottom of your functions.php” is much easier than “please implement the following interfaces…”.

      But that’s not development nor programming.

      WordPress is fun, useful and helps a lot of people.

      No doubt, but the point of this post wasn’t to debate that (because I definitely agree with it). It was to contextualize the content of the survey mentioned in the post.

      • “Those aren’t mutually exclusive, though. Knowing how to use hooks is important (and I’d say they are really required) for any WordPress development, but when you’re building even moderate sized plugins and apps, using good object-oriented practices shouldn’t be neglected.”

        No doubt. I also agree that copy and paste is not development nor programming. The point I want to make is that in comparing software methodologies we need to also consider the larger environmental factors that are not necessarily technical but affect the technical decisions. In general the more controlled the environment the easier it is to enforce orthodoxy in the technology itself. But it cuts out a lot of armature DIY crowd that i suspect contributed a great deal to the explosive growth of WordPress. I also suspect a lot of programmers resent (understandably) the ” copy and paste this function and add it to the bottom of your functions.php” precisely because as you said is not “development nor programming”. I am not pretending to have it all figured out but it seems that WordPress environment has optimized for the broadest user participation. My 2 cents :)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.