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

Visor 11 years, 8 months ago

Two paragraphs is a little bit defensive, isn't it? =p

Rez 11 years, 8 months ago

#Awk

It's all right, Blackhole. Pretty sure everybody liked her comment for the same raisins.

JuurianChi 11 years, 8 months ago

Yeah, and those people she described sound like total tools.

Opinions are okay until the idea of it becomes a tool people use to influence others.

Brilliant work, Pounce. You should write about how great Gotye is. :D

Oh, yeah. Nice blog, BlackHole. You win our little bet.

pounce4evur 11 years, 8 months ago

Cyrus is only upset because he wants a friend to sympathize with about furries. :/

Anyway, thank you, blackhole. It means a lot that my rejection of humanity has earned me something. xD

JuurianChi 11 years, 8 months ago

Quote:
Just politely laugh and stare at Cyrus with dead eyes and move on if it annoys you :P.
That's Brilliant advice. Seeing as that's how I react to almost everything.

Really, with this blog and it's comments. The same goes for just about everything under the sun.

For Example: Replace Mozart with your favorite actor, and so forth.

Replace Stephenie Meyer with your most unknown and obscure tongue artist.

Aaand there. You have a solution to a pointless problem.

Quote:
"In the world of acting, some people ridicule other people for liking Samuel Jackson because his acting is over dramatic and plays to a black stereotype . A lot of the people that ridicule Samuel Jackson fans are fans of Depp and Downey Jr, who in turn get ridiculed by Samuel Jackson fans because their fanbase consists of a younger crowd and therefore must have to acting skill what so ever. Both Samuel Jackson and Depp and Downey J fans are ridiculed by lovers of Christopher Nolan, because Batman grossed more than any of the films the other guys where in. The Christopher Nolan fans in turn get ridiculed by Samuel Jackson and Depp and Downey Jr loves because their Christopher Nolan is not cultured enough. Do you see what I'm getting at?

After being exposed to this scene, I sat down and watched movies lead by all of the actors and connot truly put one over the other.

There is no good or bad in acting, or any other art. There are only subjective opinions. As you will probably guess, a lot of narrow-minded Matthew Broderick fans ridicule popular Depp for being overly simplistic, and made to appeal to the widest number of fans at the apparent expense of quality. Yet, this "overly simplistic" Depp is enjoyed by many. Let's admit it, we've all (at least privately) seen Edward scissorhands and Charlie and the Chocolate Factory, and I'm sure many of us have even done so to the film actors that we've come to loathe.

If you can't sit down and watch an actor's performance to ponder the writer's deeper meanings, enjoy the quality of the craft or its intricacies, that certainly does not make it "bad".

Blah, blah, blah, (insert cute analogy here),blah.

There's also the strange case of works of art that succeed because of an external influence. I have to question whether or not some of kristen stewart's roles would be remotely successful if they did not have Stewart's image plastered all over them. The same can be said for the more recent works of Christopher Lee( I don't know- I pulled him out of my ass.), etc. etc.

When it comes to creating art, just do what feels right. Post your work up for people to give feedback on, and accept only the feedback that you think will bring you further to your ultimate goal of perfection (one that will never be reached by any artist, but must always be slavishly aspired to). You'll make mistakes, and you'll learn from them. Create what's good to you, not what's good to anyone else, but always seek a better good.

colseed 11 years, 8 months ago

Quote:
Just politely laugh and stare at Cyrus with dead eyes and move on if it annoys you :P.
alternatively, draw an off-the-wall comic in response

:3

JuurianChi 11 years, 8 months ago

@Stevenup7002: Uh… To illustrate my point, and I quote:

"Really, with this blog and it's comments. The same goes for just about everything under the sun."

Nobody takes anything I say seriously, so I used your comment as an example.

sirxemic 11 years, 8 months ago

Quote: JuurianChi
Nobody takes anything I say seriously
Quote: JuurianChi
Blah, blah, blah, (insert cute analogy here),blah.
No shit.