One of the stranger bits of the mathematics of computer science is the idea that there are problems that cannot be solved.
Technically this is known as the “halting problem”, and it’s closely related to Gödel’s Incompleteness Theorem, which tells us that there are perfectly valid mathematical theorems which cannot be proven to be true. You can search out those topics on the internet if you want to know more about the math behind them, but what I’d like to talk about here is the positive implication of this.
It might seem that calling a problem impossible it an admission of defeat. But if an opponent is literally undefeatable, the closest thing to victory is to not engage in a fight with them. As Sun Tzu tells us, “He will win who knows when to fight and when not to fight.”
In software development, knowing that a problem is impossible keeps us from wasting time and effort on it. We can settle for a “good enough” approximate solution, or do our best to avoid the issue. We know there is a boundary to deal with, and so can stay in the territory where our efforts can productive.
But this lesson applies outside of math and tech. The Japanese proverb shikata ga nai (仕方が無い) is an important example.
“Shikata” here means “a way to do (something)”, while “ga nai” is a negating form, so literally “there is no way to do”; a more useful translation might be “there is nothing to be done for the situation”.
In other words, the problem cannot be solved.
This philosophy was widely discussed in the wake of the 2011 Tohoku earthquake and the Fukushima nuclear disaster, with many American journalists amazed at the calm response, the lack of looting and violence that we might expect to see in the US after such a disaster.
Of course this can lead to an unhealthy fatalism. We have to distinguish between acceptance of the facts, of what is, and learned helplessness where a person (or other sentient being) stops trying even though success is within reach.
The same Japanese culture that gave us “shikata ga nai” also gave us the famous exhortations “ganbatte!”, “do your best!”; “osu!”, to persevere, and “nana korobi, ya oki”, “if you fall down seven times, get up eight times”.
So the Japanese understanding of shikata ga nai not about abandoning useful efforts.
Perhaps the attitude we need is captured in an old saw often misattributed to W.C. Fields: “If at first you don’t succeed, try, try again. Then quit. There’s no point in being a damn fool about it.”
Or if you prefer, you might think of it in terms of the “Serenity Prayer” popularized by twelve-step programs: “the serenity to accept the things we cannot change, the courage to change the things we can, and the wisdom to know the difference.”
This has been of my mind the past few days because of my family situation. Despite another major medical incident (a stroke this time, a heart attack last year) my brother has again refused to change his behavior, to go through rehab for his alcoholism; and my mother has again decided to let him come back to live with her rent-free, to continue to exploit her love.
How can I stop this pattern of addiction and co-dependence? How can I make the people I love be healthy?
I can’t. Shikata ga nai. You can’t solve the halting problem, you can’t make someone love you, and you can’t make the people you love do what’s best for them. And there is a freedom in knowing this.
A sadness too, yes; but in the long run even more sadness — and anger and guilt — results when we believe we can do the impossible, and fail.