Beware of taking impossibility proofs too seriously. They should always be interpreted to mean "you cannot achieve this goal in this model," rather than "you cannot achieve this goal."
"As far as the laws of mathematics refer to reality, they are not certain; and as far as they are certain, they do not refer to reality."
Even that is frequently misleading. Take the problem of finding a maximum independent set. You can show that if you manage to approximate this problem within any constant factor then P = NP. On the other hand, finding large independent sets is a common subproblem in several graph reduction algorithms and simple heuristics often work very well on the graphs that occur in practice.
This is an important point, but one I feel the article acknowledges well.
There are many impossibility problems that can be solved by relaxing some constraints (like wait-free) or by accepting some unsolvability (we don’t worry too hard about our programs halting in practice, and we generally trust compressed sensing results because the probability of failure is provably delta, say), or just by changing some desiderata.
Great examples include arrows impossibility theorem or the no good clustering result, each of which have solutions if the assumptions that operationalize our intuition are changed slightly.
"As far as the laws of mathematics refer to reality, they are not certain; and as far as they are certain, they do not refer to reality."