Gutenberg is a good thingGutenberg is a great step forward. Truly. It’s not “there” yet, wherever “there” is, but it’s better than what we’re used to. It’s so easy (especially as developers!) to approach these grand new ideas with a sense of skepticism and cynicism. But honestly, can you count on one hand how many times you’ve heard someone rave about how great TinyMCE and the existing WordPress editor are? If you amputate all of the fingers on that hand, you’re still likely good to go here. WordPress needs the revolutionary thinking that is happening as part of the Gutenberg project. But therein lies the rub: most of us, no matter how adept to change we tell ourselves we are, are terrible with change. So naturally, when a project like Gutenberg comes along and threatens to kill our darlings and dash our hopes, we gnash our teeth. The wonderful thing about communal teeth gnashing is that it’s a visceral amalgamation of reasonable reaction and emotional stampeding. This emotional stampede comes in the form of things that I’d like to imagine none of us would ever communicate if we were sitting across the table from someone making the hard decisions the software developers creating Gutenberg are making. It’s easy to malign, assume the worst, and to lack a general sense of empathy whatsoever. Easy, of course, when you’re sitting in front of a screen, not in front of a person. The reality is (and this is true of all open source projects) it can be incredibly deflating to spend hundreds of hours on something, ship it for public review as a beta, and get piled on. The emotional cost of this is difficult to quantify. To date, Gutenberg has received contributions from seventy-nine people (gasp: not even all Automatticians!). With over 3,200 commits publicly available on Github, OpenHub posits that the project has required over eight years of developer time…so far. Let’s take a step back and consider that. This project has only been in development since February of 2017. As of this writing, that’s barely seven months. In that short time, to have such significant investment into a project, and to bring it to its current state is nothing short of inspiring. It’s an effort that should be applauded. Does that mean it’s perfect? By no means.
It's Not There YetHere’s the deal. The weeping and gnashing of teeth I mentioned earlier? There are some legitimate reasons for it:
- Gutenberg is a good start, but it doesn't go far enough. A block-based editor should never have been imagined in wp-admin, but on the front-end.
- Related: For something as revolutionary as this could be, what you see should be what you get. But unfortunately, what you see is not always what you get.
- The HTML-comments-as-a-data-structure concept is clever, but there are better options.
- The React vs. Vue debate could have been handled perhaps a bit more transparently. The outside perspective presumed (right or wrong) that the debate was a nicety, a technicality, and using React was a foregone conclusion. In my opinion, a clear stance on the licensing issues should have been communicated, a decision should have been made, and that should have been that. That, coupled with the assurance of abstraction from any singular library, and potentially documentation on shimming in alternatives, should have laid the debate to rest. Instead, countless hours, resources, and momentum were wasted. For what it's worth, I'm Team Vue to the end, but I'm grateful the debate is over and momentum has been regained.
- While it has come a long way, there's still a long way to go. I miss my word count. (Update: coming soon!)
Let's All Just Slow Down a BitEveryone involved in the process (the community, core developers, those of us deep in the weeds, users, etc.) would benefit from slowing down a bit and taking a look at the big picture. Software development is hard, and revolutionary software development is even harder. Add to that considerations for backwards compatibility spanning well over a decade and you’re dealing with a near impossible task. The world isn’t going to end if Gutenberg uses React. Gutenberg won’t be a failure if it doesn’t ship until WordPress 5.5. This type of project requires the patience and leadership to get it right. It requires willingness to listen to stakeholders that you might not normally listen to, and to consider positions you might not normally consider. I have two significant concerns right now. The first is that the lead decision makers for Gutenberg might fall prey to the sunk cost fallacy. None of us, no matter how brilliant, are immune from its grip. It would be very easy to think, “We’ve already invested seven months into this; we’re likely beyond a half-way point at this time. Any major architectural departure cannot be considered, we need to ship this, and soon.” That would be an unfortunate conclusion to come to. While an initial version of Gutenberg may very well ship in WordPress 5.0 as anticipated, the cost of investment now has to be weighed against the lifetime of the editor, not the expected ship date for the editor. If this is the editor that exists in WordPress for the next fifteen years, I think we can wait an extra few months now to get it right. The sunk-cost fallacy is just that–a fallacy. The second major concern I have is not for the Gutenberg team, but for us as a community. The general sense of “us vs. them” that I continue to see gives me great cause for concern. I’ve seen it in many open source projects in the past, including WordPress, but the extended nature of the Gutenberg timeline means extended exposure to this reality. Having maintained a large open source project myself, let me tell you, developers are real people. We spend time, expend emotional energy, use real resources and capital, and miss time away from our real spouses and children. The constant barrage of sometimes personal attacks, character malignment, assumption of ill intention, ignorance, or downright stupidity is completely out of line, and ultimately, self-defeating. I say it’s self-defeating for one simple reason. The person who give criticism instead of critique, who complains loudly in all directions instead of tactfully in the right direction, and who spouts assumption rather than well-researched position is a person that no one will listen to. Open-source software maintainers–the ones that stick around–have developed an acutely tuned filter for people like this. We don’t always admit it, and rarely say this publicly, but this type of feedback never influences project direction. If you can’t say something that’s worth saying, and say it nicely, then don’t say it! Maybe that sounds harsh, but the reality is we all want the same thing: a beautiful, modern interface that just works. It’s not there yet, but it will get there, in time.
We're Still EarlyLet me end with a story. Disclaimer: I come from the church world, so if that’s a turn-off, you’re free to check out here–no hard feelings whatsoever. The theological heritage I come from is filled with people, who for better or worse (usually worse) are quite certain Jesus is returning in the next decade or two. Our lifetimes, at least. They don’t all think this way, not by any stretch. But enough do to make me want them to be right, and for them be raptured sooner than later. The problem is that, in their minds, the world is continuing to get worse and worse, so naturally, that means we’re mere historic seconds away from Jesus riding in on a white horse. So imagine how refreshing it was for me to hear a recent theological perspective from someone. He said something along the lines of:
What if these aren’t the “last days?” What if the evangelicals and the Moral Majority were wrong all along? What if, much to our chagrin, 2,000 years into this, we’re still the early church?What if? You may not come from the same theological background I do, or any theology at all, but to me, that sort of paradigm shift was beyond refreshing. If some of my Christian brothers and sisters shifted mindsets from a place of “OMG THE WORLD IS ENDING! LET’S ALL HUNKER DOWN!” to “Heeey, you know, we may still have a few thousand years to go. Let’s make those millennia AWESOME FOR EVERYONE,” it would serve us (and everyone else) in an incredible way. In the same way, the sense of urgency around the Gutenberg is likely misplaced. If we could all allow ourselves a similar paradigm shift, and start to imagine the project in a broader scope, over a longer term, our hopes and expectations in the short-term might start becoming a bit more realistic. I do hope our community rallies around this project in a greater way than we’ve seen yet, and I also hope that the core development team considers substantive critical feedback. I know in our own open source projects at Zao, we’re keeping a close eye on Gutenberg and discovering the best ways we can integrate it into our own projects and contribute back. I think all of us together, over the long haul, can build this into something that is truly revolutionary.