If you don’t keep up-to-date with WordPress news, over the last couple of years they’ve gone all-in on React, building a fancy new dashboard and their wildly ambitious Calypso editor project on top of it.
A few years ago, Automattic used React as the basis for the ground-up rewrite of WordPress.com we called Calypso, I believe it’s one of the larger React-based open source projects… More recently, the WordPress community started to use React for Gutenberg, the largest core project we’ve taken on in many years. People’s experience with React and the size of the React community—including Calypso—was a factor in trying out React for Gutenberg, and that made React the new de facto standard for WordPress and the tens of thousands of plugins written for WordPress.
Yesterday, Rian Rietveld, a core member of the WordPress accessibility team, stepped down form her role and penned a detailed article about it.
There was a lot of interesting stuff in the article, but two points in particular really jumped out at me (emphasis mine).
- The codebase of Gutenberg is difficult for all of us, because no one in the wpa11y team is a skilled REACT developer. So it was hard to implement changes and write PRs ourselves. What we could do is test, tell what’s wrong and what it should be and hope a developer would pick it up. A lot of a11y work has been done by the Gutenberg team but major issues still exist.
- There was no REACT developer with accessibility experience in the community, and no REACT accessibility experts from outside the community willing to work on the issues for free.
I’ve written before about the barrier to entry that frameworks can pose for new developers.
But here’s an example of seasoned, highly skilled professionals struggling to do the essentials of their job because a tool was chosen that alienates people from the process.
To me, the key difference is this: vanilla JS is framework and platform agnostic. It can be ported to various sites and content management systems. It’s broad.
Frameworks are narrow. They have a specific syntax, non-standard methods and conventions. They often, in my opinion, overcomplicate the development process, the code base, and the markup.
Frameworks create doors that lock certain people out.