Gutenberg first impressions … written in Gutenberg

Hmm. A "storytelling" angle. Is all new content written in Gutenberg considered a "story"?

* What about magic formatting, perhaps as a bulleted list?
Nope, apparently not.

It's kind of interesting how every time I hit enter, I effectively create a new block, whereas I guess experience suggests it should just be another paragraph in the same block. Maybe shift+enter will prevent that?

Nope. Hmm, OK.

I do kind of like how backspacing out of a thought effectively deletes the block and moves you back to the previous one. That seems intuitive. Having to double click on icons for previous blocks because they aren't currently the ones with focus isn't.

OK, so I've clicked out of the blocks and now there's a bunch of stuff in the sidebar. I get it, it's very much an indicator of "distraction free writing" but the transition is kind of jarring. Flash on, flash off.

Wonder what the difference is between naturally typing a new "paragraph", thereby getting a new block, and clicking this + symbol does?

Oh, apparently text is the default. Maybe the gear icon for each block that currently does nothing gives options to change the block type? Bug probably.
Oh, so it seems like you actually can hit enter inside a block and remain in there, but it only works sometimes and you can't space the text more than a single break apart without triggering a new block.

Somebody mentioned in another post that the drop cap doesn't seem to work.
I got it to work once (somehow) but now can't. Definitely a little buggy.

Anyhoo, part II will cover non-text blocks and part III sidebar settings that flash on flash off.

OK, actually, I'm just going to inject one quick thing here … if what are effectively post settings only show when you select out of a block, maybe the button that toggles the sidebar (that holds block settings when a block is focused, and post settings the rest of the time) should say Block Settings when a block is focused.

Breaking backward compatibility should not be about convenience

A big part of WordPress’ philosophies is embracing backward compatibility. And that commitment, for the most part, largely spills over to plugins and themes extending it. At least it should.

So when I read on the WooCommerce development blog about upcoming changes in 2.7+, I was at first encouraged that they’re embracing an abstraction layer for meta handling. Nice! Then I got to the part where they said they essentially plan to break backward compatibility in a future version for meta handling.

If you do anything with product, customer, orders, and coupons, you will be affected in some way. Even if you do a simple update meta call. This won’t break immediately, but your code will not be future proof. As soon as the schema changes in another update, your code will fail.

Yikes.

There are several good, even necessary reasons to break backward compatibility.  For instance, sometimes a product will force a backward incompatible change because something is being deliberately misused outside of the original intent. That’s not what’s going on here.

Frankly, the WooCommerce team’s decision smacks of convenience more than anything. Supporting backward compatibility is sometimes hard, but rarely impossible. And by choosing to break it, they may be unnecessarily playing with the fire that is user trust.

Won’t somebody please think of the users?

User trust isn’t something you earn and then just get to keep forever. It’s a maintenance relationship. So for WooCommerce – an extremely popular product with immense reach in the WordPress ecosystem – I would consider a backward compatibility break of this magnitude to be borderline irresponsible.

There are likely hundreds, probably even thousands of commercial and custom extensions for WooCommerce. Most, if not all of them, up until 2.7, will have probably relied on its usage of post meta for everything from products and coupons, to customer and order data.

Coming out and saying that at some point you will stop using post meta is completely fine. Coming out and saying that some point you will stop supporting post meta is not.

Use the hooks, Luke

There are more than enough hooks in the Post Meta API to facilitate backward-compatibility for previously-post-meta-now-something else data.

I know for a fact that the Easy Digital Downloads team are using those hooks since moving to a custom schema from post meta. Disclosure: I work for AffiliateWP, a sister product of Easy Digital Downloads.

There’s nothing saying that the WooCommerce team has to encourage use of post meta. Feel free to toss deprecated notices or use _doing_it_wrong()s, but don’t break what used to work before.

It’s easy enough for developers to shift to using the abstraction layers – I for one am looking forward to it – but WooCommerce wasn’t built for me. It was built for the people I (and an army of others) build things for, and it was built using post meta.

By all means, improve your code, but keep in mind: sometimes you gotta dance with the one that brung yuh.

“Chain Links” image by Danny Hope, used under Creative Commons.

I was on WP Round Table today.

I’ve been a longtime viewer of WP Round Table, so it was pretty neat to be asked to join Kyle Maurer today.

Check it out: