I Will Never Fork WordPress
There’s been a handful of posts this week that have focused on the theory and possibility of forking WordPress. Instead of reacting immediately to some of the posts I’ve spent a bit of time in introspection reading these posts and asking myself if I would ever, myself, seriously consider forking WordPress.
What I’ve come away is pretty clear and I’ll go ahead and say it for the record (as if the title of this blog post didn’t give that away):
I will never fork WordPress.
I will spend a little bit of time explaining my position as follows:
Theory and Practice
I understand where Morten is coming from and I want to very much stand up and applaud the way that he outlined his own position and used such nice and concise graphics to create his argument. I like how he sets it up and how he poses questions that are both universally understood and important:
This 10 year anniversary should also be a time for review, revision, and vision for the future. Should WordPress remain a one-size-fits-all CMS grown out of a blogging platform? Or is it time to rethink the structure of the application and modularize it to meet the demands of different user groups? I say it’s time for a fork.
As stated, he thinks that it’s time to fork WordPress and begins to systematically lay out his position that I believe is, for the most part, philosophically-sound.
But there is a difference between theory and practice, and when I say “difference” I mean that in every sense of the word. There is a gap that exists here that is so large that it’s hard, if not impossible, to fully reconcile.
You see, if you’ve ever looked in Trac and if you’ve ever looked at Core (not just glazed over it or TL;DR’d it) then it’s almost impossible to come away thinking, on easy terms, that forking would be anything but exceptionally difficult.
There are pieces of code in there that are 10 years old, some of which is incredibly grotesque and ugly, but some of which is as good as it’s going to get. I don’t give WordPress a “pass” on being 100% amazing at every single level, especially from an engineering perspective, but it’s not bad either.
You must simply not forget that some of the conventions of PHP that we believe in today were not present 10 years ago. Newer developers seem to dismiss this (or ignorantly overlook this) and scream that WordPress is not “best practice” – to those I just shake my head because they just need to grow up (and learn a bit of history).
But to fork it, and even stripping it out to the “core” Core and then building modularly would, practically speaking from an engineering perspective, be akin to adding a fifth wheel to a car or, as a friend suggested, making the steering wheel square. It just doesn’t make sense from a pragmatic point of view, and this isn’t even talking about dependencies, like server configurations and the like. Forking could jeopardize those staples overnight.
But I get the theory behind it (and the intention) and I agree principally that things have definitely changed in the last 10 years and that arguments about bloat, focus, and even normative use cases (and fringe) have begged these questions.
If I were to ever endeavor anything close to a fork I would much rather spend that allotted time pulling out a Ghost, where a new and different (radical?) vision would begin to take shape, simply because the time to refactor and fork would be practically stupid in light of what could be done from scratch.
When I say the “ecosystem” I include two things namely, the first being the overall product and service offerings that are available to WordPress, which would include themes and plugins. I secondly include the overall culture and historicity that have been created and cultivated within the last decade (and then some, if you include WordPress’ original fork of b2/cafelog).
The first point is that the themes and plugins (namely the latter) provide such rich and valuable add-on experiences in a ‘modular’ approach that I find it hard to even want to consider forking WordPress in anyway that might jeopardize the use and pragmatic utility of such an incredible library.
Can you imagine saying goodbye to all of those plugins that you count on for not only for yourself but for your clients and customers? When I consider forking something I consider the ecosystem that I may (or may not) be abandoning as a result of my decision.
Secondly, the culture and historicity of an application is also something that is “forked” when you functionally fork an application. This is not necessarily required to happen but it is, again, a possibility. 10 years is a long time in software and to divorce it has it’s consequences, both good and bad. But there is something to be said abou the maturity of a platform and technology, that has survived many ups and downs, that no app or culture can acquire through brute force or even purchase.
It take time and experience over that time is an valuable source of learning, insight, innovation, and progress. Forking WordPress would, again, invite the possibility of a schism that is not something that I personally am interested in inviting. I would much rather start anew and being loading up the history books on fresh and new pages than borrowing from a decade’s worth.
I love the thoughts and ideas that are being proposed and I support the right for everyone to have their opinion (as this piece is very much my own opinion). Let’s not squelch or silence others just because we have a different perspective. Like another friend mentioned recently, collaboration without critique is dead:
There appears to be an idea current that a community, which is really just a team on a macro scale, can collaborate without healthy, and sometimes jarring, critique. I emphatically disagree!
Collaboration without critique is dead.
As a team, it is imperative that we critique each other even if the recipient of the critique isn’t ready to take ownership of the news.
Likewise, as a community, or very specifically as a WordPress community, we must critique one another. Sometimes when invited. Sometimes not.
Yes, it will be messy. Yes, candor must be balanced with decorum. But in the end we must be bold with one another, and engage in true collaboration, for the betterment of our respective teams, and the larger community of which we are a part.
Well said, well said.
Some other resources that have come up again for your reading pleasure:
- The Dire Straits of WordPress
- Discussion of The Dire Straits of WordPress on Hacker News
- Why WordPress is Doomed
- Why WordPress is Not Doomed
- Who Owns WordPress?
- 10 Years Old: Is It Time for a Fork?
Read on my friends, critique and collaborate!