New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Naming/InclusiveLanguage is politically biased and should not be included by default #9947
Comments
@mildred Absolutely agree. |
Agree. Can we get this check disabled by default? If the rubocop project itself has this cop disabled, shouldn't it be disabled by default for everyone? |
Please disable this by default! |
Likely an oversight on our part, as the first iteration of the cop wasn't particularly granular in its configuration. Given how conservative the current defaults are (in essence you'll get only warnings for "blacklist") what exactly is the issue you're facing with the cop? I assume you don't want to update "blacklist" references, but more details would be useful. |
@bbatsov I’d like to offer some perspective which I hope will be helpful. Firstly, thank you for all your work on Rubocop. I’ve learned a lot from this tool over the years, and I’m sure we can all agree that Rubocop is an invaluable resource for the Ruby community. 🙂👍🏻 As to the issue at hand, my objection to the The terms whitelist and blacklist, as examples, have been in use for decades and it is only recently that some groups have begun to assert that these are inherently “racist” or “exclusionary” in some way. This assertion and others like it are neither objective nor widely accepted. They are in fact quite divisive with people on both sides speaking out loudly in defense of their respective views. But the point here is not that someone’s ideas on issues of term-banning are right or wrong. The point is that Rubcop is not the place to have that conversation. In fact, the word conversation, sadly, is seldom an appropriate term for discussions that involve race and related social issues. Debates about the merit of such terms as “blacklist” are emotionally charged and divisive. Where does it end? Today we ban “blacklist” and “whitelist”, but what about “whitespace”? What about scientists who publish “white papers” or graduate students who receive “master’s degrees”? Should GitHub begin to ban repos which refuse to rename their Do we really want to fight this battle in a code formatting tool? If Shopify would like to disallow the use of terms like “blacklist” in their codebase I completely respect their right as a private company to make that decision. A simple find/replace should suffice. But attempting to reach into everyone else’s codebase, enforcing their viewpoint that “blacklist” is not inclusive, is both an overreach and a needless invitation for conflict. I’ll wrap up with a quote from the Rubocop style guide:
Blacklist, whitelist, master branch, et al. are real-world terms in common use by good people of all colors who are not hateful, exclusionary, or racist. If we really want to encourage harmony and good will among software developers, let’s keep social debates in the town halls and HR departments and let Rubocop and its users concern themselves with the technical quality of their Ruby code. 🙂❤️ EDIT: After posting my thoughts above, I discovered that the original author of the ‘Naming/InclusiveLanguage` cop explicitly endorsed disabling it by default. That’s a welcome endorsement and while I stand by my position that Rubocop is not the place to raise these issues, I do appreciate his statement that he “[doesn’t] want to force it or a specific configuration on anyone.” Hopefully that sentiment is something we can all agree on. 🙂 |
I'm not sure why some believe this particular linter to be "political" (I'm curious what definition of that term you have in mind.) To me it seems straightforwardly a boon to code clarity, which is precisely the purpose for which so many of choose linting tools like Rubocop, an in particular its valuable linters in the Of course, we all know there are other reasons to avoid making the mental equation of "white" with "allowed" and "black" with "disallowed" a precondition of working in a codebase. Even if you choose to avoid those, the argument for clarity still stands. In both cases, our choice of words has a well-attested effect on what it's like to work in a codebase, and the effectiveness of developers who do. |
Perhaps because the cop's name is "Naming/InclusiveLanguage", which is direct reference to the political belief that these words "exclude" marginalized groups.
blacklist and whitelist are common words which have been in the English language for 400 years. Unlike Everyone agrees that |
Hm, but does that not beg the question of what makes matters of exclusionary language a "political belief"? Politics means "relating to the affairs of government," which seems unrelated to the discussion at hand. I mention this only because the OP's primary argument for turning off this linter by default is that it is "politically biased" without defining what that means.
You're right that "blacklist" appears to trace back pretty far, which I hadn't realized. I'm always happy for a lesson in etymology, so thanks for prompting that. "whitelist" seems more recent as of the 1800s but far enough back that your point still stands. Though I am sympathetic to @mildred's concern for non-native English speakers and would venture that "allow" and "block" are more intuitive in that case than the figurative usage of black and white for this purpose.
This, I think, is the strongest argument against enabling |
The RuboCop team has decided that we are going to mark this cop as disabled by default, but certainly encourage anyone who benefits from this cop to enable it for your own projects. 🙌 |
Naming/InclusiveLanguage
enforces a politically biased view of the world and will drive away legitimate programmers that do not share this specific mindset.In light of true inclusion for all programmers, this should be disabled by default.
It's one thing to personally refrain from words that one deems inappropriate, it's a completely different thing for an automated tool to forbid every programmer to use the language they naturally speak. it's much more agressive, especially coming from an automated tool that cannot be argued with. Also, not every programmer is a native english speaker, and the deemed inclusive language is not relevant throughout the world.
edit: There a previous issue on this at #9895 but the raised issue was not the same. It only raised the with a repository having a master branch, not on the whole cop.
The text was updated successfully, but these errors were encountered: