What Is A Right Answer?

Posted by blackhole on Aug. 22, 2012, 9:14 p.m.

I find that modern culture is often obsessed with a concept of wrongness. It is a tendency to paint things in a black and white fashion, as if there are simply wrong answers and right answers and nothing in-between. While I have seen this in every single imaginable discipline (including art and music, which is particularly disturbing), it is most obvious to me in the realm of programming.

When people aren't making astonishingly over-generalized statements like trying to say one programming language is better than another without context, we often try to find the "best" way to do something. The problem is that we don't often bother to think about exactly what makes the best answer the best answer. Does it have to be fast? If speed was the only thing that was important, we'd write everything in assembly. Does it have to be simple? I could list a thousand instances were simplicity fails to account for edge-cases that render the code useless. Does it have to be easy to understand? If you want something to be easy to understand, then the entire C standard library is one giant wrong answer that's being relied upon by virtually every single program in the entire world.

For a concept taken for granted by most programmers, defining what exactly makes an implementation "optimal" is incredibly difficult. A frightening number of programmers are also incapable of realizing this, and continue to hang on to basic assumptions that one would think should hold everywhere, when very few of them actually do. Things like "the program should not crash" seem reasonable, but what if you want to ensure that a safety feature crashed the program instead of corrupting the system?

The knee-jerk reaction to this is "Oh yeah, except for that." This phrase seems to underlie many of the schisms in the programming community. Virtually every single assumption that could be held by a programmer will be wrong somewhere. I regularly encounter programmers who think you should do something a specific way no matter what, until you ask them about making a kernel. "Oh yeah, except for that." Or a sound processing library. "Oh yeah, except for that." Or a rover on mars. Or a video decoder. Or a raytracer. Or a driver. Or a compiler. Or a robot. Or scientific computing.

All these except-for-that's betray the fundamental failure of modern programming culture: There is no right answer. The entire concept of Right and Wrong does not belong in programming, because you are trying to find your way to a solution and there are billions of ways to get there, and the one that works best for your particular situation depends on hundreds of thousands of independent variables. Yet, there is a "right answer" on Stack Overflow. There are books on writing "proper code". There are "best practices". People talk about programming solutions that are "more right" than others. There are black and white, right and wrong, yes or no questions pervading the consciousness of the majority of programmers, who foolishly think that you can actually reduce an engineering problem into a mathematical one, despite overwhelming evidence that you simply cannot escape the clutches of reality and how long it takes an electron to reach the other side of a silicon wafer.

If you ask someone how to do something the right way, you are asking the wrong question. You should be asking them how to solve your problem. You didn't do something the wrong way, you simply solved the wrong problem.

Original Post

Comments

Toast 11 years, 8 months ago

I don't want to live in a world where everyone preempts their statements with "IMHO", and hurriedly provides references straight afterwards.

For the most part you seem to be objecting to the way people use language to convey their opinion. Bear in mind that when someone talks about "the right way" to do something, it doesn't mean they're right, or even that they think they're definitely right. It just saves an awful lot of time to work upon that premise. "Oh yeah, except for that" is something merely said by people who haven't thought about the problem long enough or good enough, or incorrectly assumed that the exception wasn't worth mentioning. While there are no wrong answers, there are certainly alot of stupid and pointless ones that we could do without discussing further.

Not many care to admit it, but humans, particularly programming ones, like to be told exactly what to do. Books are written imperatively because they sell better.

Mega 11 years, 8 months ago

I like being told what to do, but occasionally I take what I've been told, throw it in the trash, and do it differently.

Interestingly, the motivational speaker yesterday was saying something along the same lines.

JuurianChi 11 years, 8 months ago

Rules are made by people who can't handle the chaos.

Rules are made to be broken.

pounce4evur 11 years, 8 months ago

Very well put, sir.

It seems to me that most people educate themselves through either googling it or by word of mouth. For example, my friends all loved Skyrim, and all of the Elder Scrolls games. But, when one friend began to badmouth it, it became a stigma to even mention it. I continued to ask them why it was bad. The only thing they could say was "It's too much like the Sims." I got my friend Dominic back into thinking when I asked him why he didn't like Skyrim while he was playing the Sims 3. Another of my friends, Josif, has never played an Elder Scrolls game, yet he consistently badmouths it on a daily basis and no one is bothered by it but me.

I brought up Freddie Mercury with my friends a few days ago. The moment I mentioned him, the rabble-rouser of the group shouted "Oh, that faggot?" and everyone joined in. I shut up and waited a few days, and simply played Another One Bites the Dust without saying a word while we were hanging out. The rabble-rouser announced that he loves Queen, and everyone joined in, awkwardly throwing in whatever random song title they knew by them wherever they could. I laughed and said, "Well, that's hilarious, who's their lead singer again?" Of course no one knew. When I told them it was Freddie Mercury, they went right back to dismissing the band as something they could not like again.

Yeah, this is why I'm antisocial. For an argument to be valid, you have to know why. You could be talking about anything you want: politics, video games, musical tastes, the color of the fucking sky if you wanted to. If you were a blind man and you asked the color of the sky, and were told that it is pink, sure, you'll believe it. But when two other people argue about whether it's teal or cerulean today and you toss in that it's pink and both of them are wrong because you said so, well, you won't get very far.

In any case, thanks for posting this. I have a passion for arguing with people. I love when they talk for hours while I listen, because it gives me a big list of ways to prove them wrong based on their own argument. The moments that I want to shoot myself in the head are when I open my mouth for one sentence, and they dismiss me as wrong with no insight and a completely closed mind. This blog at least makes me confident that there are still a few people out there still know how not to argue a point that they themselves didn't come up with.

edit: holy fuck, I typed a lot. I apologize.

Unaligned 11 years, 8 months ago

I'm pretty sure I used to be the kind of person who'd only see stuff as right/wrong, black/white. Over the years I've slowly been realizing how wrong I was. Everything is relative, except for the fact that everything is relative.

Quote: pounce4evur
edit: holy fuck, I typed a lot. I apologize.
Worth the read

blackhole 11 years, 8 months ago

Quote: pounce4evur
stuff

If you were single, I'd totally hit on you, because I want to make love to that post. And I mean that in the least creepy way possible (which probably doesn't help but oh well).

JuurianChi 11 years, 8 months ago

:I

Well.

That escalated quickly.

Opinion is moot.

Rez 11 years, 8 months ago

I am a male and I can like females' opinions in nonsexual ways.

The women love me.

pounce4evur 11 years, 8 months ago

Quote: cyrus
pounce sometimes likes to walk around her school wearing bunny ears.

…wouldn't he just hit on playboy bunnies if that's all he wanted? :/

heh, I'm flattered. and slightly creeped out, in a good way?

blackhole 11 years, 8 months ago

Well cyrus completely and utterly ruined the entire point of what I was trying to say, which was that I'm naturally more inclined to befriend people who reject social norms, and consequently I was trying to say that because of pounce4evur's insightful post, I think very highly of her as a human being. I did this by saying I was attracted to her because it was supposed to be funny and self-deprecating since I've never had a girlfriend and have no idea what i'm doing, but apparently all I did was make myself look even more stupid.

If I say "I think I love you" to a girl, its because she has an intellect that is vastly above average, is capable of forming her own opinions, and is clearly not one to submit to peer pressure. It's because she has demonstrated herself to be an exemplary human being capable of being both individualistic and caring about the things that actually matter. It's because she has torn through the sickening, suffocating veil of society, and built her own damn opinion about how the world should be. It means I have the utmost respect for her opinions and observations. It doesn't have a single fucking thing to do with bunny ears.