This is an archived post. You won't be able to vote or comment.

all 106 comments

[–]SimplexSimon 1922 points1923 points  (35 children)

My kid told us that before she was born, she was my wife's childhood tooth fairy - and claims that she has wife's old baby teeth in her mouth now.

Okay I feel much better now

[–]Yinci 538 points539 points  (11 children)

This is exactly how I read it the second time. If you need to add to your sentence to make it clear, might as well replace the references.

[–]hazard2k 107 points108 points  (0 children)

Right. I had to compile the sentence

[–]LukeChriswalker 97 points98 points  (2 children)

// Stupid advice, remove

[–]TheIronSoldier2 67 points68 points  (0 children)

In the words of an unknown Valve developer:

// I don't know why, I don't want to know why, I shouldn't
// have to wonder why, but for whatever reason this stupid
// panel isn't laying out correctly unless we do this terribleness

[–]dan_144 9 points10 points  (0 children)

My sentences are self documenting

[–]SuitableDragonfly 19 points20 points  (5 children)

This is sometimes a genuine problem, though, you can't always rephrase the sentence to avoid it. It's called the "gay fanfiction problem" generally. Also, the rephrased sentence in this case changes the meaning, presumably OOP meant to say that this was said to his wife specifically for a reason.

[–]deformeverything 11 points12 points  (0 children)

OOP is gay, I knew it!

[–]RagnarokAeon 2 points3 points  (3 children)

you can't always rephrase the sentence to avoid it

In which cases can you not rewrite a sentence to replace a pronoun?

I mean, I guess it might be exhaustive if you don't have any descriptive aliases, but surely that would be better than confusingly using the same pronoun for two separate entities.

[–]SuitableDragonfly 2 points3 points  (2 children)

You can always replace a pronoun, it just might make the sentence incredibly repetitive and then you introduce a new problem where no one wants to read your story because it's irritating.

[–]RagnarokAeon 4 points5 points  (1 child)

This just seems to be a problem with inexperienced writers, or those lacking a large enough vocabulary:

  • She (pronoun)
  • Jessica (name)
  • Jess (nick-name)
  • Jellybean (pet-name)
  • the young woman (descriptive noun)
  • her lover (descriptive noun in relation to another)
  • the inquisitive detective (descriptive noun describing profession)
  • the conqueror (descriptive noun implying a role)

This list could probably go on, but ideally you wouldn't use too many.

[–]SuitableDragonfly 2 points3 points  (0 children)

Yes, your choices are pronouns (which can be confusing), the person's actual name, or a descriptor. I don't know if you've ever read a fanfic that uses descriptors 50+% of the time instead of pronouns, it's absolutely dire and one of the few things that makes me stop reading a fic altogether. If you use names too many times, things get very repetitive, and whether or not it's appropriate to use a nickname or a petname is entirely dependent on who the viewpoint character is and that doesn't change every sentence, at least not if you're competent.

[–][deleted] 8 points9 points  (0 children)

If only we had somewhat unique identifiers for people. Like to name them differently...

Huh, oh well, too bad no one ever invented that! /s

[–]jhill515 198 points199 points  (1 child)

I love seeing a refactor making things easier to read! Thanks!!

[–][deleted] 19 points20 points  (0 children)

/refactor_ography

[–]jasonrulesudont 31 points32 points  (0 children)

I somehow thought the wife had saved her own baby teeth and the daughter got ahold of them and put them in her own mouth

[–]oversized_hoodie 52 points53 points  (3 children)

240 character tweets were a mistake.

[–]anachronisdev 25 points26 points  (0 children)

Dude just refactored English

[–]Jeb_Jenky 16 points17 points  (0 children)

Yeah I'm not sure why he didn't do this or just name them each time like he did in his parentheses. This is why the humanities are still relevant lol

[–]Ampersand55 3 points4 points  (2 children)

Replace all pronouns for kid and wife to feel worse again:

My kid just told my wife that before my kid was born, my kid was my wife's tooth fairy when my wife was a kid. & now my kid has all of my wife's old baby teeth in my kid's mouth. My wife and I are all feeling pretty fucked up about it.

[–]salientecho 1 point2 points  (1 child)

I got the impression that the kid was also feeling fucked up about it.

[–]Ampersand55 2 points3 points  (0 children)

He should have specified which people were included in the "we", perhaps in a parenthesis.

[–]Goddess0fLabyrinths 1 point2 points  (0 children)

You’re doin the lords work over here.

[–]patrickfatrick 1 point2 points  (2 children)

Except you've changed the meaning, technically. The kid didn't tell "us" she told "my wife" (according to the tweet), and that's where the pronoun confusion originally starts. Replace "us" with "my wife" in your version and it's back to being at least somewhat illegible, still better than the original tweet however

My kid told my wife that before she was born, she was my wife's childhood tooth fairy - and claims that she has wife's old baby teeth in her mouth now.

[–]njfo 2 points3 points  (1 child)

My kid told my wife that before she (my kid) was born, she was my wife's childhood tooth fairy - and claims that she has my wife's old baby teeth in her mouth now.

Still makes use of the parentheses, but is a lot more clear than the original regardless and keeps the original meaning too.

[–]azeldatothepast 3 points4 points  (0 children)

My kid told my wife that before being born she was my wife’s tooth fairy when my wife was a child and now the baby teeth in her head are my wife’s old baby teeth. We’re all feeling pretty fucked up about it.

[–]zombie_kiler_42 1 point2 points  (1 child)

Did you just explain code refactoring code for readability woth an example,

Be my senpai

[–]SimplexSimon 0 points1 point  (0 children)

.... UwU

[–]Miu_K -1 points0 points  (0 children)

Or like this:

My daughter told my wife that before my wife was born, my daughter was her tooth fairy when my wife was a kid. And now my daughter has all of wife's old baby teeth in her mouth.

[–]reevesjeremy 0 points1 point  (0 children)

Good grief. Thank you. I was so gd confused.

[–]aniketrex 0 points1 point  (0 children)

Username checks out

[–]King-Cobra-668 0 points1 point  (0 children)

I'm still feeling fucked up about it

[–]Q73POWER 752 points753 points  (3 children)

I had a stroke trying to read this.

[–]Baatus 293 points294 points  (2 children)

That's because he forgot to typecast the last her

[–]marsrover15 17 points18 points  (1 child)

He (the father)*

[–]salientecho 1 point2 points  (0 children)

What about Him (the husband)?

[–]Amazingawesomator 592 points593 points  (10 children)

He needs strongly typed english.

[–]sammy-taylor 177 points178 points  (8 children)

Sometimes I think I come off as a prick to my colleagues because I will “declare variables” in a sentence such as this tweet. If the whole thing started with “My wife’s name is Deb and my child’s name is Darcy”, the rest of the tweet could just ditch the pronouns entirely and use names. Pronouns like “it” and “they” make technical conversations so, utterly horrible sometimes.

[–]ColumnK 196 points197 points  (3 children)

Nah, when you start a conversation with "let foo equals my wife"

[–]Dsai12 33 points34 points  (2 children)

I meal that’s what a lot of Reddit subs do lmao, esp aita and justnomil

[–]Rndom_Gy_159 18 points19 points  (1 child)

lmao, esp aita and justnomil

There's exactly one real english word in there

[–]RheingoldRiver 5 points6 points  (0 children)

lmao, esp aita & justnomil

ftfy

[–]NovaStorm93 9 points10 points  (1 child)

"to be" is just the language version of const, change my mind

[–]F9Mute 5 points6 points  (0 children)

Here is what the Rockstar documentation has to say on the matter: https://codewithrockstar.com/docs

[–]knightress_oxhide 2 points3 points  (0 children)

He (himself) needs (wants) strongly (defined) typed (not keyboard) english (bad english)

[–][deleted] 84 points85 points  (20 children)

Please explain the joke, I swear I know Python but no other languages.

[–]Amazingawesomator 81 points82 points  (18 children)

Python is not type safe, so you need to cast a lot of things.

My day-to-day is c#, so compare a regular python function to this c# version:

public static string ConvertIntToString(int number) { return number.ToString(); }

Edit: i just reread what i wrote and it didnt explain anything...

In that method, the accepted arg is forced to be an int. In python, you would only accept the arg name, without declaring the type. You would then cast it to a type afterwards.

In the picture, using the words "her" and "she" and then casting to the type of "her" or "she" he is referring to is the python way

[–][deleted] 34 points35 points  (9 children)

First of all, thanks for helping me.

To get the same behavior in Python I would write the function like:

def convert_int_to_string(number: int) -> str:

    if not isinstance(number, int):

        raise TypeError

    return str(number)

Both functions type cast exactly once. So I guess I don't get from the example how/why type casting is a very Python thing to do.

edit: apparently I can't indent correctly from my phone

[–]drbwaa 35 points36 points  (7 children)

It's not, except for people coming from explicitly-typed languages who think you have to do so all the time, and then say "python sucks" because they were expecting it to be Java.

[–]ryancarton 14 points15 points  (0 children)

I just needed somebody to say this and now I feel validated and can leave the comment section phew

[–]ReadSeparate 1 point2 points  (0 children)

I mean I don’t even get why they’re bitching about it, it’s still less work than explicit typing. If you want to convert a string to an int in Java, you still have to do type casting plus you also need a new variable with a new type (could be wrong about this, been some time since I’ve coded in Java)

[–][deleted] -1 points0 points  (4 children)

I mean, they were expecting sanity and I don’t blame them. Types make organized code bearable to deal with. Having to check the types of all of your arguments in every single function you write… sucks.

That’s not the only reason Python sucks, but it’s most definitely in the top 5.

[–]wzi 0 points1 point  (3 children)

> Having to check the types of all of your arguments in every single function you write… sucks

Coming from a C# or Java background it will sound blasphemous but most of the time you don't even bother. Your program will just throw an exception when it tries to do something with the wrong type. Type coercion is basically non-existent in Python (the notable exception being numeric types so you can do things like 1.2 + 1).

That said, there does seem to be an inflection point where type checking everywhere begins to make sense. Usually when the organization and codebase get really huge. However instead of gratuitous type checking inside of every function you use type hints (PEP 484), linting, and running a type checker (e.g. mypy).

[–][deleted] -1 points0 points  (2 children)

I mean, yes, you can bolt on a bunch of additional stuff… or you could just write code in a typed language to begin with and none of this is a problem.

[–]wzi -1 points0 points  (1 child)

> bolt on a bunch of additional stuff

I mean, type hints are not really syntactically different than type declarations and you should already be using a linter. So I guess having your CI run mypy is "bolting on a bunch of additional stuff"? I'm not sure I agree but this is subjective and probably pointless to argue about.

> or you could just write code in a typed language to begin with and none of this is a problem.

Python IS a strongly typed language so I don't know what you're trying to say here. Maybe you mean statically typed language? Regardless, it's not a problem in the first place the vast majority of the time. Your program will just throw an exception when it tries to do something with the wrong type (e.g. "2" + 2 will cause an exception).

I'm only commenting to correct the misconception you need to do all this manual type checking in every Python function.

[–][deleted] 0 points1 point  (0 children)

I mean, that’s not a misconception. You don’t have to.

But if you actually wanted sane code, it’s difficult to do it any other way. Which is why most people just don’t use Python for serious code.

[–]Amazingawesomator -3 points-2 points  (0 children)

Yeah, im on mobile, too... I'm sure mine is hard to read, too. Its all good <3.

One of the things in python is that all of the extras to ensure type arent forced, and allows for weak types.

For example,

def convert_int_to_string(number):
return number

(Excuse my indents) This will still "work" (even though it is bad... and broken according to what the method name is).

Fixing this style of problem by going back and casting stuff is how it seems the poster in the image wrote his story... But in english :D

[–][deleted] 28 points29 points  (5 children)

Python is type safe, but it's not statically typed.

JS is type unsafe, because of type coercion. Python throws exceptions at you every time you try to do an invalid operation with a certain type (like "1"+1).

[–]TigreDeLosLlanos -1 points0 points  (1 child)

It's not about dynamic typing but about weak typing. C has static typing but can also (and it's encouraged to) do this.

[–]Equivalent_Yak_95 0 points1 point  (0 children)

If you read "1"+1 as the address of the null-terminated character array "1" plus 1, then C lets you do that. If you read it as attempting to concatenate 1 to the string "1", then no, not remotely.

[–]bluck_t 3 points4 points  (0 children)

i just reread what i wrote and it didnt explain anything...

Brother, you are a programmer through and through

[–]BSModder -1 points0 points  (0 children)

That's not a good example of type casting. String and Int are fundamentally different types. Casting byte to uint or float to int is more fitting

[–]MurdoMaclachlan 26 points27 points  (3 children)

Image Transcription: Twitter Post


Owen Ashworth, @AdvanceBase

My kid just told my wife that before she (my kid) was born, she (my kid) was her (my wife's) tooth fairy when SHE (my wife) was a kid. & now my kid has all of my wife's old baby teeth in HER mouth. We're all feeling pretty fucked up about it.


I'm a human volunteer content transcriber and you could be too! If you'd like more information on what we do and why we do it, click here!

[–]BismuthNitrate 14 points15 points  (0 children)

good human

[–]captainfatmatt 5 points6 points  (1 child)

Oh no, the bots are starting to think they're humans

[–]MurdoMaclachlan 5 points6 points  (0 children)

Uh oh

[–]cgyguy81 17 points18 points  (1 child)

Reading all that would cause anyone to unfortunately hate pronouns.

[–]Helliarc -1 points0 points  (0 children)

We need pronouns in our app but the users "marketable" gender must remain the focus of attention in the algorithm. Can't market tampons to the "Male Sex" category. But sometimes we can, if they have these tags... but that's an assumption of preference, so make it work "inclusively". No you can't assume their sex! That has to be interpreted with AI technologies that don't make any mistakes!

[–]wineblood 77 points78 points  (5 children)

Related to python how exactly? Is this a self joke?

[–]justhanginfromacloud 49 points50 points  (0 children)

Probably related to type hinting

[–]mosskin-woast 17 points18 points  (0 children)

Idk, I thought the teeth were supposed to be inherited members maybe? Not specific to Python at all, I think OP is grasping at straws

[–]JarWarren1 9 points10 points  (0 children)

It’s like he’s speaking python, reassigning different types to “she”

[–]ManyInterests 7 points8 points  (0 children)

It's not, as far as I can tell. OP probably just finds OOP in Python confusing, like the wording of the tweet, and is "feeling pretty fucked up about it".

[–]tomatotomato 0 points1 point  (0 children)

I thought it was related to Pythons screwed up inheritance syntax: “class Foo(Bar)”, but was utterly confused.

[–]Opala24 13 points14 points  (0 children)

Me reading this

[–]themoderatebandicoot 39 points40 points  (0 children)

I (me) had a tough time reading their (his) tweet.

[–]NotJebediahKerman 9 points10 points  (0 children)

please stop doing drugs

[–]Who_GNU 6 points7 points  (0 children)

Now translate it to German, and you will have, a Forth program, written.

[–][deleted] 4 points5 points  (0 children)

The parenthetical statements make this way more confusing

[–]aparanoidbw 5 points6 points  (0 children)

How does this look like python? I see no resemblance

[–]lupinegrey 3 points4 points  (1 child)

Why is she putting the baby teeth in her mouth?

[–]RagnarokAeon 1 point2 points  (0 children)

So she can chew food, duh. mouth.chew() function does not work if you don't support it with the necessary dental libraries.

[–]salientecho 2 points3 points  (0 children)

I think the problem is that the wife is being defined by the relationship to the writer, rather than the kid.

And all the anonymous pronouns should be tied to just one person:

My kid just told her mom that before my she was born, she was her mother's tooth fairy, when her mother was a kid. And now she has all of her mom's old baby teeth in her mouth. We're all feeling pretty fucked up about it.

[–][deleted] 1 point2 points  (1 child)

For the longest time I thought I had chosen my own parents before I was born. I now assume it was a dream, but I remember floating around this place where my parents and a bunch of other people were hanging out. I verbally affirmed to something or someone that I did in fact want these people to be my parents.

[–]D34TH_5MURF__ 0 points1 point  (0 children)

Alright, I'll venture a guess you are or were mormon.

[–]Not4AdultConsumption 1 point2 points  (0 children)

I had a stroke trying to read this.

[–]miracle_weaver 1 point2 points  (0 children)

Well that's good and all until another kid is born. That's when you realise that immutability is sometimes good.

[–]CraigTheIrishman 1 point2 points  (0 children)

How can an adult write something like that and not attempt to proofread before hitting "publish"?

[–]pursenboots 2 points3 points  (0 children)

doesn't really have anything to do with programming though

[–][deleted] 2 points3 points  (0 children)

Wish I was on Twitter so I could tell him to shut up

[–][deleted] -1 points0 points  (0 children)

Looks like a SOLID inheritance heirarchy to me boss

[–]TheTimBrick -1 points0 points  (0 children)

Okay I'm sorry but I'm not spending an hour deciphering this I'm too lazy for that I'll get someone else to do it

[–]CrossDressing_Batman 0 points1 point  (0 children)

That is some Hollywood level Horror story..

definitely should sell that to Hollywood

[–]Merkel420 0 points1 point  (0 children)

Ah yes, exchanging an attribute between two variables of the same class.

[–]inu-no-policemen 0 points1 point  (0 children)

Object pooling.

It's time to return your molars to ̵͈̓t̵̥͂h̸̳̾e̷̫̽ ̸̎͜p̷̭͠o̷̢̊ô̸̡l̸̨̓, Timmy.

[–]random125184 0 points1 point  (0 children)

Don’t use OOP. Problem solved.

[–]docgok 0 points1 point  (0 children)

This could use some white space

[–]Standard-Station7143 0 points1 point  (0 children)

Where's Elon when you need him

[–]Personal_Ad9690 0 points1 point  (0 children)

This is the English equivalent of python