There are some that may feel like WordPress (eventually) may be headed toward the deadpool:
Trying to describe how code works on a platform that has the kind of fundamental logic that WordPress does is like trying to teach a language that doesn’t have an alphabet.
I would discourage anyone from learning it until they’re more au fait with a platform that operates on better principles. Basically, WordPress isn’t a platform suited to anyone except those unlucky enough to have somehow become WordPress developers.
There’s already a heavy discussion on Hacker News that’s riddled with some great arguments, some well-crafted rebuttals, some trolls, and even a few that are part of the “Who cares, go home, WTF!?” camp.

I thought long and hard before I hit the ‘Publish’ button on this – but it’s worth commenting on. I think that James is wrong on many accounts, even perhaps ignorant of some key facts about the way WordPress is developed that might have changed some of his perspective.
But it is a valid perspective insofar as it’s his and his alone – opening himself up to a conversation was a good move and the conversation is what you’d expect from the internet.
In the end, though, it does draw some connections to other existing technology solutions and philosophies that are still worth noting. Do you dare throw your own hat into the ring? We’re all friends here.








In some ways, he’s right, but tragically behind the times. As Matt has pointed out, we’re headed for a majority-JavaScript future for WordPress. Given Backbone’s prominent use in the 3.5 release, I’d say we’re headed for an MVC future, whether anyone realizes it or not.
I’d agree that we’re headed towards MVC on the client side, but I don’t think we’ll see that in the core server side code for sometime.
Aside from the significant refactoring that it would require (and I’m not saying it’s impossible, of course, just that it would take time), this would also require that those contributing to core handle the
actionandfiltermethods properly because they tend to follow an entirely different design pattern.Naturally, this isn’t to say that multiple design patterns can’t co-exist in a system – that statement simply doesn’t make sense – but just that we’re headed closer to MVC on the client-side faster than we are on the server-side.
The article headline drew me in and I laughed when I read it, to be honest. Doomed? A poor system to develop on? It sounds like this guy just hasn’t developed properly in WordPress or has dealt with some extremely bad situations where WordPress just wasn’t the end solution for him/his team.
That isn’t the platform’s fault.
I learned A LOT about Web Development as a whole thanks to my countless hours spent within the WordPress platform and I wouldn’t trade any of it in for the world. Everyone is entitled to their opinion but his, seems a tad bias and I want to say bordering on trolling the CMS as a whole.
WordPress dying out? I doubt it when a huge portion of the interwebs is built on it and more and more are adding daily.
Further thoughts: if a Python or Ruby CMS decided to re-implement the plugin and theme APIs, we might just see some ability for folks to move off of WP and onto CMSes that line up with other folks’ expectations. An MIT-licensed shim could allow for this and would actually open up a LOT of horizons…
Is this the same Hacker News that says SEOUL is dead every 4 or 5 weeks? Despite evidence to the contrary?
I am not too worried. Good programmers evolve, don’t they?
Yesterday, I told Pete Schuster the same thing. This happens at least once a year if not more.
.
You’re welcome.
OMG. Yes…!
We had a great looooooooooooooooooooooooooooong internal conversation in our backchannel about this hacker news article… i hope Tom jumps in and shares his thoughts.
or… at the least, comments on your image.
Less Carmack, more Victor von.
But the demons!
Who’s he fighting?
Doom?
If it’s on HN and it’s not rails or MVC, it’s doomed.
Disclaimer: I’m a huge HN fan. Also, hyperbole.
In all seriousness:
I feel like WP is very well structured. I don’t see why it would just die out unless something more awesome took its place. The best part of WP is that you can make it do just about anything. True, you have to roll your own sometimes, but that’s the price for custom.
Disclaimer: I learned development with WP, so I think in WP ideas. Might make me biased…
There’s nothing wrong in “thinking in WP,” just like there’s nothing wrong in thinking in .NET, thinking in Rails, or thinking in [whatever framework].
I believe that it’s a positive to be able to think in terms of the framework or application in which you’re using because you’re going to be able to write the best possible code for that application.
WP does some really neat things right, and WP does some things wrong. The same can be said for just about any other popular framework or application foundation that’s out there.
Yeah, I think WP is just my native CMS language. Easiest for me to understand, mostly because I did it first.
I realize that this article is not for this but I’m going to throw it out there. As someone who is coming from a MVC framework (CodeIgniter) background getting into WordPress plugin development is mind boggling and honestly makes no logical sense to me. I’ve tried on two different occasions, with two different tutorials, to write a plugin. I felt like I needed to know all the filters and various different things before I could even get a plugin to do something (I got as far as getting a plugin to show up in the admin!). Now I’m not superman programmer, but I’m fairly confident in my skills. When I switched over to another CMS, granted it’s currently CodeIgniter based, I had something doing something in a matter of a couple of hours. Am I just getting on the wrong tutorials or what? It seems like there’s a HUGE learning curve to at least get into the WordPress plugin and it honestly makes no sense.
Appreciate any thoughts.
I think that this is a fantastic comment. To level set, I’ve come from the following two backgrounds:
Shifting from WebForms to MVC was tough (though I do love MVC), and and shifting from MVC to WordPress was tough, but I love WordPress, too.
The thing is that each framework or application offers its own unique set of API’s and every time that you jump into a new system, you’re starting at Level 0.
Of course, this doesn’t really address your points, so I’ll do my best
.
This is half-true. You do need to know a lot of the hooks (read: actions and filters) to really take advantage of what WordPress offers, but this is not unlike learning the API for a new system either.
This is the classical learning curve of WordPress developers.
I’ll also say that the tutorials may not have been well-written. Don’t doubt yourself (though I think that’s our natural tendencies). Instead, it’s completely possible that the tutorials weren’t complete, weren’t well-written, or just didn’t give with your learning style.
I see this as you going from CodeIgniter to WordPress back to, essentially, CodeIgnitor so the learning curve shouldn’t be that steep.
A better challenge would be to hop into something like Rails and see how quickly you can write a gem after spending just a short amount of time with it.
I don’t know if this helps or not, but this is a topic that’s near-and-dear to me so much so that I talk about this stuff at my local meetups in an attempt to help other people learn how to build things “the right way” (read: the getting a grip on the API faster).
We all have different learning styles – some learn by doing, others by reading – and I don’t know what yours is, but I do know what works for me may not work for you.
But based on what you’ve shared, it sounds like the tutorials are leaving something to be desired.
Tom – Thanks for the in depth follow up. You bring up some very good points and I’m still interested in learning some wordpress development. I’m one of those people that needs little bits of success at a time and I just keep ‘tugging’ at something until I got it. Any suggestions for tutorials that might give me that or that do a better job perhaps of explaining what’s needed to get going?
Thanks again for your time.
Tom, do you have any recommendations for tutorials that help to get “a grip on the API faster?”
An integral part of understanding why WordPress “does things the wrong way omg wtf” is because it was built to make the learning curve for becoming a developer not as steep as, for say, an MVC framework. “Want to edit your theme? Here are some conditional tags for you.” Wasn’t PHP made to be a templating language to begin with?
Even Jane once said on trac that Hello Dolly was included with WP core to illustrate the ease of plugin development.
I don’t know if I fully agree with this. What you’ve said is that WordPress is built the way it is to make learning to program easier.
I could be way off and I mean no disrespect to your statement, but I don’t think that’s the case at all. WordPress wasn’t built with developers in mind. It was built with digital publishers – thus, end users – in mind.
To that end, if you’re coming from a different background, it can be daunting to get into WordPress. It uses entirely different design patterns than a lot of the more traditional frameworks.
And even though Jane/Jen may have said that Hello Dolly was meant to show how easy it is to write a plugin, I don’t think that plugin is a good example at all.
It leaves out critical features such as JavaScripts, Stylesheets, and Hooks. On top of that, all that’s really needed to get a plugin to show up in WordPress is a properly formatted comment block.
“I could be way off and I mean no disrespect to your statement, but I don’t think that’s the case at all. WordPress wasn’t built with developers in mind. It was built with digital publishers – thus, end users – in mind.”
This is not mutually exclusive, software can be both user friendly and developer friendly.
More then that, what is the point of an open source software if a user with no formal education in software development (the target users of WP) can’t follow a simple recipe to adapt the software to his needs? and there are endless code snippets on the net to do many small useful changes. True that now when wordpress is more mature must users don’t have any need in that but it was very useful in the past.
Maybe OOP and MVP are more sexy but how much time will it take to explain to your mom the basic concept she has to know before she will be able to change/extend software written with those technologies?
I wrote about this today:
http://chrislema.com/the-dire-state-of-programmers-in-their-twenties/
TL;DR… grow up.
LOL. Thanks chris!
John — I think you’re misrepresenting Mr. Shakespeare. He absolutely did not say WP is headed for doom, death, etc. Quite the opposite. Alex King’s points about WP’s limitations at WP Engine’s blog (which you also linked to recently) are much the same.
Interesting perspective from Eric seeing MVC systems as having a higher learning curve as opposed to just hacking themes with conditional tags. I think Christian D’s perspective is typical of anyone who has worked with MVC and then comes to WordPress.
For myself, I started with Movable Type 1.0, got into WordPress when it debuted, and kept an eye on it while doing more with other platforms from 2004 on. WP 2.9 really changed things. To simplify greatly, I think it was the interface and automated upgrades that made WP accessible to everyone and took away two key barriers for commercial site builders and agencies. Yet underneath all that are architectural issues that sadly seem clear only to people who aren’t focused solely on WP. Noting those issues hardly means saying WP is doomed, shouldn’t be used, etc.
What’s stopping you from writing a theme or plugin using OOP, MCV or full PSR compliance….well nothing.
Sure at some point you have to hook into WordPress but the whole point of OOP is to make that step flexible as well. The core is really about maintaining a platform, not so much about pushing the cutting edge.
The real question of DOOM is “will WordPress be around in 500 years”, and if not what happens to all that data. Will it evaporate like geocities or somehow be archived as a part of human history (the format doesn’t really give this much hope).