We would have been both blind and ignorant if we hadn’t recognised that something is going on in the world lately.
Diversity and inclusion are two topics that shows up almost every day in one shape or another. And as time changes, so does the view on things we used to see as “normal”.
We have made the decision to change the wording on a number of properties, configuration settings and method name across the Flow Framework and Neos CMS platform to embrace this.
Naming really is hard!
In software development, naming has often been defined as one of the hardest tasks. When I first started with Domain Driven Design, I found out that it’s true.
We tend to model and name our domain in terms that make sense to what we solve. We have something to look at and compare our domain model to. Yes, this car has a `$manufacturer`, `$insurance` and it can `start()` (or at least, you can turn the key and hope!). We more or less create a new domain for each project and compare it to what we are solving now.
But our tools are not revised in the same way whenever we create a new project and things tend to stay as they have always been.
Acknowledge that a positive change has come around
The discussion about wording in development has been around for a long time. And lately, the focus has been on words with a surprising tone to it.
If you have no clue, what words that could be, I don’t judge you. I’ve been blind to a number of them myself. So let’s go through what words we have changed and in exchange of what.
The property, method name or configuration settings with this name have always been associated with “not allowed”, “bad” or “excluded”.
But by writing that one sentence, I gave myself three better words to describe what I actually mean. We no longer have `$blacklistedSubPackages` in our Compiler.
We have `$excludedSubPackages`, holding the subpackage names we have excluded.
The word associated with what is “allowed”, “good” or “included”.
Which again, gave me three better words to use in a context. We no longer have `$whitelistedObjects` in the Persistence Manager.
We have `$allowedObjects`, telling us what objects the persistence manager is allowed to persist.
How we got around it and what changed
Alexander Berl proposed that the wording in the Flow Framework and the built-on-top Neos CMS had no place in the time we are now.
Original pull request: https://github.com/neos/flow-development-collection/pull/2024
It took a number of tries for us to get it right, keeping compatibility in mind, but also keeping in mind what words we chose now and finding all corners where we would like to have this change reflect accordingly.
The pull request is public, please go and read our notes and comments.