By Tom

This is modern, right? Though not exactly what I mean.

This is modern, right? Though not exactly what I mean.

For whatever reason you may have (and there are plenty), people dislike calling WordPress a legacy application. Perhaps this is because it feels old, it feels outdated, it doesn’t feel as fresh as some of what the peers in our industry are working on, and so on.

Whatever the case, some people get defensive about working with a legacy application.

To a degree, I understand: We don’t want to be the type of programmers who are stuck working with something that’s decades old when there are far newer technologies to be learning.

And on one hand, I get it. Our generation doesn’t want to be the next generation of, say, COBOL programmers (no offense to the COBOL programmer who is reading this :). But the thing is that the languages on which WordPress is built are moving forward.

  • There are new versions of PHP.
  • Advancements are being made with JavaScript.
  • Though the future is uncertain, this is an API that’s going to free us from the dashboard of WordPress should we so choose.

I know, I know (but there are solutions!):

  • The features of PHP we can use are limited by the hosts available. So choose modern hosts.
  • JavaScript is only going to be as supported as the browsers that implement the new features. Luckily, the adopting rate of new features in the browser is pretty high.
  • If you want to use the REST API, then install the plugin and use it. Don’t worry too much about the core merge or not, for now.

No, this does not magically solve all of our problems. There are always going to be points about which we can complain, so the discussions that we often have oriented about the complaints that we have with WordPress can be just as fruitless as they can be fruitful.

It’s all in how they are framed.

And clearly, I love WordPress. I earn my living with it. Obviously, I’m on its side. But in the past few years, I’ve set some boundaries for myself for how I want to manage this particular tension.

Working with Legacy Code

Though the whole idea of the past three posts has been around working with legacy code, I thought it might be worth sharing how I approach building things both for our plugins and for our clients as it relates to working with legacy code.

First, the general rules that we follow are: