TheRodinhoods

Why and not How.

This is an abridged comment I posted earlier on the enlightening discussion, “https://www.therodinhoods.com/forum/topics/the-question-is-how-not-why“. Re-posting it here again to get a discussion going around the Why’s and How’s. Also, the said discussion may not have been the best place for it to be, as the author was talking about “doers” and how nothing(including why’s) should  stop them. I might have taken it out of context a bit. In any case, it’s a good topic. Hope you throw more brickbats then flowers.

                                                                    Source

“Why and not How. How is boring. How is predictable. How has been done before in another form in another time. How did Thomas Edison invent the Modern Bulb? He famously found thousand ways of how not do it and one way how to do it. So, Why did Thomas Edison invent the Modern Bulb? The common answer would be, “Dummy, because we need light!” But that’s the wrong Why. Another why would be: Why did T. Edison chose the particular materials? Tungsten! a material which is very hard and very dense. He didn’t come across Tungsten randomly. He was looking for it since the filaments of the old bulbs would break apart on constant power ups and downs. So the question was, Why are the filaments breaking? He tried using metals and “harder substances” instead of carbon filaments. He dwindled between platinum and carbon. Always re-iterating the same question. Why are the filaments breaking? Ultimately solving it. So you see why is the engine of innovation. Why is the mother of How. Why did Archimedes find out about buoyancy or How did he find it? How assumes the answers, Why looks for it. 

Let’s take this simple mathematical equation x + y = 10. Solve for x and y. How to do it? You would say, “Dummy, aren’t you missing something?” Where is the second equation? So the question is Why do you need a second equation? “Because, that’s how you do it” is not the right answer. x+y=10 is a linear equation which simply means x and y change on a line. So imagine a line travelling in space where sometimes x = y-10. But since y is unknown, we must find another imaginary line travelling in space, fly by it and find an intersection. At that intersection, we say, “Oh ok, see, for x = 5 I have got two Y coordinates”. And that’s why we need another line or equation. How is always a clone of a previous answer. Let’s take a programming example. In Java, we have a Handler() class. It let’s you create a cheap new thread which does a task and then dies. So someone says, our application needs multiple threads, how do we do it, but wait, there is a catch, the Java king(I want to believe he exists) has banished Handler() from all API documentation and taken away it’s name. It can only be found by someone if she knows exactly what it does. How do you go about that? Start asking the Why. Why does my application need multiple threads. “Well, I need to do task A and at the same time task B and I don’t want the main task to be interrupted” But gosh, you can’t find any class which does that. And you since you are a die-hard programmer you model your own class, write your own specs and poof! appears Handler(). It has been found.”

What do you think? Which is more important? Or are both equals? Please don’t just state their equality without validating the reasons.