… said the problem to the scientist.
From Peter J. Denning (2007) Computation – a new way of science
Chapter “Representations of the Infinite”:
“The algorithm is another example of a finite description of the infinite. In this case, the entities represented are the computations that the algorithm can generate. This is what makes programming so difficult. The program’s designer needs to be able to show that every computation in the infinite set meets the input-output specifications of the algorithm.“
Is it really the infinite that causes the trouble in software development or isn’t it actually the complexity? This seems important, since imho solving infinity puzzles is significantly different from handling complexity.
While dealing with infinity is more about the existence of a solution dealing with complexity is mainly about finding the optimal effort/ benefit trade-off (“ok, our solution cannot deal with the special-special-special-case, but therefore it’s only half the prize”). The latter is a core issue in everyday software business.
related former post: Why finiteness counts
Well… I should have say it the reverse way: infinity is about a bug-free software which never fails working whatever the usage, while complexity is about a software which answers to a question. Infinity costs a lot but doesn’t deliver much value once the day to day usual work may be done. And complexity is at first a matter of having a well formed question: the mathematical existence of the question is half work done for the software which answers it… Costs trade-off is here about having reasonnable business requirements 🙂
yes, to put it in a one-liner: “infinity is a about finding the solution, complexity about defining the problem” (ok, bit over-simplified perhaps?)