Bug #5625

Remove profanity and pejoratives

Added by Andrew Grimm over 3 years ago. Updated over 3 years ago.

[ruby-core:40982]
Status:Third Party's Issue
Priority:Normal
Assignee:Eric Hodel
ruby -v:F**king external libraries Backport:

Description

There are currently 6 lines with the f-word, 4 lines with "wtf" that weren't just random combinations of letters, and one line with "bullshit".

While I personally dislike such profanity, the main benefit from getting rid of it is that it'd mean people of all ages could read Ruby's source code.

There's also three lines where "lame" is used as a pejorative. Using a group of people as a pejorative should be avoided.

profanity.txt Magnifier - Profanity in Ruby and how to git grep for it (1.47 KB) Andrew Grimm, 11/14/2011 05:09 PM

noname (500 Bytes) Anonymous, 11/14/2011 08:53 PM

minitest_specific.patch Magnifier - A specific patch created because the file indicated it needed to be separate (918 Bytes) Andrew Grimm, 11/15/2011 10:08 PM

pejorative.patch Magnifier - Remove pejorative language (2.13 KB) Andrew Grimm, 11/15/2011 10:08 PM

profanity.patch Magnifier - Remove profanity (4.91 KB) Andrew Grimm, 11/15/2011 10:08 PM

pejorative_20111128.patch Magnifier - Newer version of patch for pejoratives (2.16 KB) Andrew Grimm, 11/28/2011 09:43 PM

History

#1 Updated by Yui NARUSE over 3 years ago

  • Status changed from Open to Assigned
  • Assignee set to Eric Hodel

#2 Updated by Nikolai Weibull over 3 years ago

On Sun, Nov 13, 2011 at 13:54, Andrew Grimm andrew.j.grimm@gmail.com wrote:

Issue #5625 has been reported by Andrew Grimm.

Seeing as how the brothers Grimm aren’t suitable for people of all
ages, would you mind changing your name, at least on the issue
tracker? We would like to keep the issue tracker accessible to people
of all ages as well.

#3 Updated by Alexey Muranov over 3 years ago

Nikolai Weibull wrote:

On Sun, Nov 13, 2011 at 13:54, Andrew Grimm andrew.j.grimm@gmail.com wrote:

Issue #5625 has been reported by Andrew Grimm.

Seeing as how the brothers Grimm aren’t suitable for people of all
ages, would you mind changing your name, at least on the issue
tracker? We would like to keep the issue tracker accessible to people
of all ages as well.

I think this comment is off-topic.

#4 Updated by Mike Dalessio over 3 years ago

If a child is intelligent enough to read and understand advanced C code in the Ruby interpreter, then shouldn't he/she also be intelligent enough to read and understand how human beings react under stress? Understanding what motivates and upsets people will make him/her a more empathetic person, and therefore a better software developer.

#5 Updated by Alexey Muranov over 3 years ago

Excuse me for commenting on a comment (double-commenting?) second time (doubly double-commenting?), but i think the issue was not about disapproving of some people or about benefits of educating some people about motives of other people, but about making the source code more adequate for its purpose :).

#6 Updated by Aaron Patterson over 3 years ago

  • Status changed from Assigned to Third Party's Issue

Parenting is outside the scope of ruby source code. Offensive words are contextual, and only a parent can teach their child what these words mean and whether or not it is OK to use them and in what context to use or not use them. More over they change with time (e.g. "wtf"), country (compare British and American English), language, etc. Teaching these differences is something only a parent has the context to do.

#7 Updated by B Kelly over 3 years ago

Alexey Muranov wrote:

I think this comment is off-topic.

It did, however, produce the best fit of surprised laughter I've
enjoyed in weeks!

In a similarly off-topic vein, I'm reminded of the following anecdote
concerning the omission of profane words from the publication of
18th century lexicographer Samuel Johnson's dictionary:

Mrs. Digby told me that when she lived in London with her sister
Mrs. Brooke, they were every now and then honoured by the visits of
Dr. Johnson.  He called on them one day soon after the publication
of his immortal dictionary.  The two ladies paid him due compliments
on the occasion.  Amongst other topics of praise they very much
commended the omission of all naughty words.  'What! my dears! then
you have been looking for them?' said the moralist.  The ladies,
confused at being thus caught, dropped the subject of the dictionary.

  -- H.D. Best, Personal and Literary Memorials, London, 1829,
     printed in Johnsonian Miscellanies, (1897) vol. II, page 390,
     edited by George Birkbeck Hill 

:)

#8 Updated by Andrew Grimm over 3 years ago

I was not aiming to protect children from the f-word. My intention was
to ensure that parents or teachers would be less likely to choose to
block children's access to Ruby source code. Do you understand the
difference?

Andrew

On Mon, Nov 14, 2011 at 8:05 AM, Aaron Patterson
aaron@tenderlovemaking.com wrote:

Issue #5625 has been updated by Aaron Patterson.

Status changed from Assigned to Third Party's Issue

Parenting is outside the scope of ruby source code.  Offensive words are contextual, and only a parent can teach their child what these words mean and whether or not it is OK to use them and in what context to use or not use them.  More over they change with time (e.g. "wtf"), country (compare British and American English), language, etc.  Teaching these differences is something only a parent has the context to do.

Bug #5625: Remove profanity and pejoratives
http://redmine.ruby-lang.org/issues/5625

Author: Andrew Grimm
Status: Third Party's Issue
Priority: Normal
Assignee: Eric Hodel
Category:
Target version:
ruby -v: ruby 1.8.8dev (2011-05-25) [i386-darwin10.7.0]

There are currently 6 lines with the f-word, 4 lines with "wtf" that weren't just random combinations of letters, and one line with "bullshit".

While I personally dislike such profanity, the main benefit from getting rid of it is that it'd mean people of all ages could read Ruby's source code.

There's also three lines where "lame" is used as a pejorative. Using a group of people as a pejorative should be avoided.

http://redmine.ruby-lang.org

#9 Updated by Andrew Grimm over 3 years ago

For the Japanese developers, the brothers Grimm would be more likely
known as the brothers グリム (Gurimu), unless they learnt English at an
early age. A greater source of confusion is that there's another A
Grimm (Avdi Grimm http://about.avdi.org/ ), and an Andrew Grim (
http://contributors.rubyonrails.org/contributors/andrew-grim/commits )
in the Ruby ecosystem!

A n do lyu u Gu ri mu
アンドリュー グリム
http://rubykaigi.org/2011/ja/schedule/details/18S03

On Mon, Nov 14, 2011 at 12:13 AM, Nikolai Weibull now@bitwi.se wrote:

On Sun, Nov 13, 2011 at 13:54, Andrew Grimm andrew.j.grimm@gmail.com wrote:

Issue #5625 has been reported by Andrew Grimm.

Seeing as how the brothers Grimm aren’t suitable for people of all
ages, would you mind changing your name, at least on the issue
tracker? We would like to keep the issue tracker accessible to people
of all ages as well.

#10 Updated by Nobuyoshi Nakada over 3 years ago

What words, and where?

#11 Updated by Andrew Grimm over 3 years ago

Attached is the files with profanity, and the word "lame", and how to grep for them.

The words are in rubygems, psych, rdoc and minitest.

#12 Updated by Anonymous over 3 years ago

On Mon, Nov 14, 2011 at 07:36:58AM +0900, Andrew Grimm wrote:

I was not aiming to protect children from the f-word. My intention was
to ensure that parents or teachers would be less likely to choose to
block children's access to Ruby source code. Do you understand the
difference?

These words are found in public libraries too, no?

--
Aaron Patterson
http://tenderlovemaking.com/

#13 Updated by Jon Forums over 3 years ago

On Mon, Nov 14, 2011 at 6:35 AM, Aaron Patterson
tenderlove@ruby-lang.orgwrote:

On Mon, Nov 14, 2011 at 07:36:58AM +0900, Andrew Grimm wrote:

I was not aiming to protect children from the f-word. My intention was
to ensure that parents or teachers would be less likely to choose to
block children's access to Ruby source code. Do you understand the
difference?

These words are found in public libraries too, no?

At first, I thought this was a Joke issue. But it appears not to be.

Such fundamental flaws in the claim, argument, and conclusion that I'm
surprised this personal taste issue still remains open.

If we're going to celebrate Winston Smith's job of Newspeak and move
forward on The Great Code Purge, let's not do a half-assed job of it.

For example, why keep the following words from being on The List and
enjoying the party?

grep -Prn "(stupid|spermy)" ruby-git

How debilitating to one's self-esteem to have to see "stupid" when reading
code for the first time when you're already having a difficult time
understanding it. And "assert_spermy_equal" must be changed to the more
usable and PC "assert_tilde_followed_by_greater_than_math_symbol_equal".

Maybe we need a poll to discover all words that may be perceived as
offensive to anyone, anywhere, at anytime past, present, or future.

Next on the cleanup list should be the following project as those heinously
naughty words seem to be much more prevalent than the 6,4, and 1 lines
found in MRI:

C:\temp>grep -Prn "fuck" linux-3.1.1 | wc -l -w
27 316

C:\temp>grep -Prn "lame" linux-3.1.1 | wc -l -w
124 1139

C:\temp>grep -Prn "shit" linux-3.1.1 | wc -l -w
119 945

C:\temp>grep -Prn "stupid" linux-3.1.1 | wc -l -w
162 1879

with my personal favorite being:

linux-3.1.1/lib/vsprintf.c:9: * Wirzenius wrote this portably, Torvalds
fucked it up :-)

I personally fail to see how this issue even passes the "notability for a
ruby-core issue" test.

That said, thanks for the much needed laugh on a Monday morning. If I'm
really bored I may swing over the the Linux ML list and show them what I
found and see what response I get :P

Jon

#14 Updated by Joshua Ballanco over 3 years ago

I'm going to have to side with Aaron on this one. If teachers/parents would
prevent their children from accessing a repository of knowledge simply due
to the occurrence of a few "naughty" words, then this world has bigger
issues than a few programmers taking out their frustrations in a public
manner.

I can hear the counterargument: "Do you really need to use the Ruby source
code to take a stand? Would it be so bad to just remove the words?"

To which I would reply: "Would it be so bad to just let Hitler have the
Sudetenland?"

There, now I've reverse Godwin'd it...

On Mon, Nov 14, 2011 at 6:35 AM, Aaron Patterson
tenderlove@ruby-lang.orgwrote:

On Mon, Nov 14, 2011 at 07:36:58AM +0900, Andrew Grimm wrote:

I was not aiming to protect children from the f-word. My intention was
to ensure that parents or teachers would be less likely to choose to
block children's access to Ruby source code. Do you understand the
difference?

These words are found in public libraries too, no?

Aaron Patterson
http://tenderlovemaking.com/

#15 Updated by Alexey Muranov over 3 years ago

I like this Russian joke: "Don't swear, you are not in kindergarten". This argument gets entertaining.

#16 Updated by Andrew Grimm over 3 years ago

Jon Forums wrote:

On Mon, Nov 14, 2011 at 6:35 AM, Aaron Patterson
tenderlove@ruby-lang.orgwrote:

On Mon, Nov 14, 2011 at 07:36:58AM +0900, Andrew Grimm wrote:

I was not aiming to protect children from the f-word. My intention was
to ensure that parents or teachers would be less likely to choose to
block children's access to Ruby source code. Do you understand the
difference?

These words are found in public libraries too, no?

At first, I thought this was a Joke issue. But it appears not to be.

Such fundamental flaws in the claim, argument, and conclusion that I'm
surprised this personal taste issue still remains open.

If we're going to celebrate Winston Smith's job of Newspeak and move
forward on The Great Code Purge, let's not do a half-assed job of it.

Doubleplusgood, comrade!

For example, why keep the following words from being on The List and
enjoying the party?

grep -Prn "(stupid|spermy)" ruby-git

How debilitating to one's self-esteem to have to see "stupid" when reading
code for the first time when you're already having a difficult time
understanding it. And "assert_spermy_equal" must be changed to the more
usable and PC "assert_tilde_followed_by_greater_than_math_symbol_equal".

People have in fact been getting rid of the term "spermy". https://github.com/rubygems/rubygems/pull/123

Maybe we need a poll to discover all words that may be perceived as
offensive to anyone, anywhere, at anytime past, present, or future.

Next on the cleanup list should be the following project as those heinously
naughty words seem to be much more prevalent than the 6,4, and 1 lines
found in MRI:

C:\temp>grep -Prn "fuck" linux-3.1.1 | wc -l -w
27 316

C:\temp>grep -Prn "lame" linux-3.1.1 | wc -l -w
124 1139

C:\temp>grep -Prn "shit" linux-3.1.1 | wc -l -w
119 945

C:\temp>grep -Prn "stupid" linux-3.1.1 | wc -l -w
162 1879

with my personal favorite being:

linux-3.1.1/lib/vsprintf.c:9: * Wirzenius wrote this portably, Torvalds
fucked it up :-)

I personally fail to see how this issue even passes the "notability for a
ruby-core issue" test.

That said, thanks for the much needed laugh on a Monday morning. If I'm
really bored I may swing over the the Linux ML list and show them what I
found and see what response I get :P

I had the perception that core Ruby developers were polite and civilized than core Linux developers. If Ruby had the same level of profanity as Linux, and the profanity came from those who originally worked on it rather than the newer members of core, I wouldn't have bothered reporting profanity. If the community is happy with non-discriminatory profanity, I won't complain about it.

I may have still reported discriminatory language, however. Even if I thought it'd most likely get rejected.

Can we get rid of "lame" at least, please?

Jon

Andrew

#17 Updated by B Kelly over 3 years ago

Andrew Grimm wrote:

Can we get rid of "lame" at least, please?

Dude, that's fucking retarded.

http://www.merriam-webster.com/dictionary/lame

Seriously.

One can say "that's lame" without denigrating people who are physically impaired, the same way one can say "that's fucked up" without referring to airplane bathroom sex.

Regards,

Bill

#18 Updated by Ben Bleything over 3 years ago

On Sun, Nov 13, 2011 at 2:36 PM, Andrew Grimm andrew.j.grimm@gmail.com wrote:

I was not aiming to protect children from the f-word. My intention was
to ensure that parents or teachers would be less likely to choose to
block children's access to Ruby source code. Do you understand the
difference?

Perhaps if you submitted a patch with the changes you want made, you'd
find this audience more receptive. As it is, you're effectively asking
a bunch of people who clearly don't care about this "issue" to do the
work for you.

Ben

#19 Updated by Andrew Grimm over 3 years ago

Can we get rid of "lame" at least, please?

Dude, that's fucking retarded.

Did you choose "retarded" deliberately in response to a complaint
about denigrating a group of people? Nice.

Andrew

#20 Updated by B Kelly over 3 years ago

Andrew Grimm wrote:

Did you choose "retarded" deliberately in response to a complaint
about denigrating a group of people? Nice.

A lame jest on my part, I'll concede.

For what it's worth, when evaluating the words others choose,
what's more important to me is the intent I perceive, rather
than the literal word itself.

Although I was (gleefully) being an ass, my use of the term
'retarded' in my prior post was in the service of criticizing
an idea, not a person -- let alone a category of people.

To me that's an important distinction. I could imagine saying,
about an idea, "that's dumb." But I can almost not conceive of
saying to someone, about their idea: "you're dumb."

And if in response to my characterization of an idea as 'dumb',
someone were to intimate that I've thereby disparaged the set
of all people who lack the ability to speak......?

I would regard such an assertion as freakishly bizarre, to say
the least.

(N.B. The ruby sources also contain varying instances of 'dumb'
and 'idiot' and 'freakish'; although no conjugations of 'imbecile'
or 'moron' seem to be present.)

Regards,

Bill

#21 Updated by Andrew Grimm over 3 years ago

Ben Bleything wrote:

On Sun, Nov 13, 2011 at 2:36 PM, Andrew Grimm andrew.j.grimm@gmail.com wrote:

I was not aiming to protect children from the f-word. My intention was
to ensure that parents or teachers would be less likely to choose to
block children's access to Ruby source code. Do you understand the
difference?

Perhaps if you submitted a patch with the changes you want made, you'd
find this audience more receptive. As it is, you're effectively asking
a bunch of people who clearly don't care about this "issue" to do the
work for you.

Ben

I don't know whether these will get accepted, but attached are three patches. One for pejorative language, one for profanity, and one because a file indicated at the top it needed separate patches.

#22 Updated by Nobuyoshi Nakada over 3 years ago

  • ruby -v changed from ruby 1.8.8dev (2011-05-25) [i386-darwin10.7.0] to F**king external libraries

Thank you for the patches.
I think you should report to each upstreams.

#23 Updated by Yui NARUSE over 3 years ago

Additional to say, don't use "windoze", "doze", or something like that because I can't grep it with "Windows".

#24 Updated by Eric Hodel over 3 years ago

I've looked through two of your patches and if we're going to remove profanity then let's not simply replace words you don't like with another word that leaves an equally unhelpful comment or method name.

The first chunk of profanity.patch should be fixed not not mess up "p1"

The second chunk indicates the following line should be rewritten into something readable.

The third chunk indicates a proper comment is needed for this variable

The fifth chunk indicates the method should be fixed

The final chunks replace the completely non-descriptive method "util_fuck_with_fetcher" with the equally completely non-descriptive method "util_muck_with_fetcher". The method name should be replaced with a properly descriptive method name.

If your goal is to "to ensure that parents or teachers would be less likely to choose to block children's access to Ruby source code" I don't see why you wish to also remove pejoratives. Certainly there are far more books in a school library packed with pejoratives than you've found in the ruby source code. Uncle Tom's Cabin comes to mind first, and I'm sure there are more instances of "fuck" in print in a library than you've found in ruby. While I've never heard of access to any source code being blocked anywhere due to either profanity or pejoratives, perhaps it occurs in countries with fewer freedoms.

The first chunk of pejorative.patch is a useful change.

The second chunk may as well omit "bad" since it is as useless an addition as "lame".

The third and fourth chunk should say something useful. Neither "tarded" nor "ouch" are useful.

I don't presently see how the two patches you've provided improve ruby's source code beyond removing words you don't like. I would be more receptive if they improved ruby's source for everyone.

#25 Updated by Yui NARUSE over 3 years ago

Eric Hodel wrote:

I've looked through two of your patches and if we're going to remove profanity then let's not simply replace words you don't like with another word that leaves an equally unhelpful comment or method name.

I don't fully agree Andrew's point.
But Eric and other Seattle people should consider that the patch includes only the code made by Seattle people.

And I don't agree Eric's argument; "fuck" makes code more readable.
If you want to use such word, that is because your code is ugly.

#26 Updated by Eric Hodel over 3 years ago

I think that profanity, pejorative or any other expression of frustration are equal indication that the code is ugly. While i also disagree with Andrew's point, I propose that we remove the ugly code instead of changing the expression of frustration.

There is a lot of ugly code in RubyGems in particular. It has not been easy to find time to fix bugs, add new features and clean up ugly code.

#27 Updated by Andrew Grimm over 3 years ago

Eric Hodel wrote:

I've looked through two of your patches and if we're going to remove profanity then let's not simply replace words you don't like with another word that leaves an equally unhelpful comment or method name.

Ok.

The first chunk of profanity.patch should be fixed not not mess up "p1"

I am in the process of investigating this piece of code. When I clone the github project version of rubygems, and uncomment the commented out code, the unit tests pass on my machine. I still want to be able to replicate why the code was commented out in the first place, so I can ensure that the issue described no longer applies, and I'd have to check that the functionality that was commented out hasn't since been re-implemented elsewhere, or is now obsolete.

The second chunk indicates the following line should be rewritten into something readable.

Fixing that should be trivially easy. I'll work on that after the first item.

The third chunk indicates a proper comment is needed for this variable

I feel that explaining what's meant by the variable is probably best left to someone familiar with the project, not someone new to it.

The fifth chunk indicates the method should be fixed

I feel this is also more suited to someone familiar with the project.

The final chunks replace the completely non-descriptive method "util_fuck_with_fetcher" with the equally completely non-descriptive method "util_muck_with_fetcher". The method name should be replaced with a properly descriptive method name.

Fair enough. A parameter that's more informative than "blow" would be good too.

If your goal is to "to ensure that parents or teachers would be less likely to choose to block children's access to Ruby source code" I don't see why you wish to also remove pejoratives. Certainly there are far more books in a school library packed with pejoratives than you've found in the ruby source code. Uncle Tom's Cabin comes to mind first, and I'm sure there are more instances of "fuck" in print in a library than you've found in ruby. While I've never heard of access to any source code being blocked anywhere due to either profanity or pejoratives, perhaps it occurs in countries with fewer freedoms.

If I had known that "tarded" was in source code when I was filing the original bug report, I would have filed two tickets: one for the profanity, and one for the pejoratives. And I would have gone into more detail why "tarded" and "lame" are inappropriate.

I had assumed that the person(s) who had used "lame" didn't know what the word originally meant (and therefore filing a separate ticket would be an over-reaction), whereas no-one has that excuse for using terms derived from "mentally retarded".

The first chunk of pejorative.patch is a useful change.

The second chunk may as well omit "bad" since it is as useless an addition as "lame".

Done.

The third and fourth chunk should say something useful. Neither "tarded" nor "ouch" are useful.

Done. Does pejorative_20111128.patch look ok?

Thanks,

Andrew

#28 Updated by Nikolai Weibull over 3 years ago

On Mon, Nov 28, 2011 at 13:43, Andrew Grimm andrew.j.grimm@gmail.com wrote:

I had assumed that the person(s) who had used "lame" didn't know what the word originally meant (and therefore filing a separate ticket would be an over-reaction), whereas no-one has that excuse for using terms derived from "mentally retarded".

Lame also means “marked by pain or rigidness” and is even a noun
describing “a thin metal plate, especially one of the overlapping
steel plates in medieval armor”.

Retarded also has two meanings (American Heritage):

  1. /Often Offensive/ Affected with mental retardation.
  2. Occurring or developing later than desired or expected; delayed.

    It’s you who are interpreting these two words the way you are. You
    would be wise not to make assumptions of what other people mean by
    using them or how other people interpret them.

    If you find the RubyGems source lame, in the “marked by pain or
    rigidness” sense, keep to applying written massage and leave the
    rhetoric out of it. It’s falling on deaf ears.

#29 Updated by B Kelly over 3 years ago

Andrew Grimm wrote:

If I had known that "tarded" was in source code when I was
filing the original bug report, I would have filed two tickets:
one for the profanity, and one for the pejoratives. And I would
have gone into more detail why "tarded" and "lame" are
inappropriate.

And what about "dumb" ? E.g:

./lib/rexml/doctype.rb: # parser, so we can be pretty dumb about them. All we need to be able

And what about "crippling" ?

./lib/rubygems/package/tar_input.rb: # point (after some benchmarking to show we weren't seriously crippling
./lib/rubygems/package/tar_input.rb- # the unpacking speed) we threw our hands in the air and declared that

And what about "master / slave" ?

./ext/pty/pty.c: int master, slave;
./ext/pty/pty.c: char *slavename;
./ext/pty/pty.c: int slave = carg->slave;
./test/test_pty.rb: def test_close_slave
./test/test_pty.rb: PTY.open {|master, slave|
./test/test_pty.rb: slave.close
./lib/rubygems/test_case.rb: # the same builder slave.

Or what about "deaf" ?

./lib/rexml/parsers/sax2parser.rb: def deafen( listener=nil, &blok )
./test/rexml/test_sax.rb: # Test the deafening method
./test/rexml/test_sax.rb: assert_fail "This listener should have been deafened!"

Or "blind" ?

./ext/digest/digest.c: /* never blindly assume that subclass methods return strings /
./ext/digest/digest.c: /
never blindly assume that #digest() returns a string */
./ext/openssl/ossl_pkey_rsa.c: rb_define_method(cRSA, "blinding_on!", ossl_rsa_blinding_on, 0);
./ext/openssl/ossl_pkey_rsa.c: rb_define_method(cRSA, "blinding_off!", ossl_rsa_blinding_off, 0);
./lib/rubygems/security.rb:# RubyGems users to blindly trust new certificates.

The following is intended is a genuine inquiry:

Do you place "dumb" in the same usage category as "lame" ?
If not, why not?

And what about the others above? Same, or different?

Regards,

Bill

Also available in: Atom PDF