Hacker News new | ask | show | jobs
by j2kun 4156 days ago
> A prominent example is “What can be computed efficiently?” Theoretical computer science seizes on this question as one of its most central, existential concerns, but the answer also matters to those who write and run programs for practical purposes.

The problem is not that a theoretician has a different answer to the question than a software engineer, but that they are asking different questions with the same words. I think this is a good reason for the fields to be considered different.

1 comments

In a hypothetical situation I could be developing a piece of software and have an algorithm that is astronomically more efficient than its closest alternative, BUT if the efficient algorithm is good at doing exactly one thing and nothing else, while its alternative can be easily adopted to a variety of tasks and furthermore can be more easily understood by the guy who comes along after me, I am going to use the one that is just good enough for the task at hand. The developer is interested in practicality while the theoretician is interested in ideality.
Another issue is that from a theoretical perspective, in a lot of cases, an algorithm that terminates, even if it takes longer than the heat-death of the universe, is an immense improvement over the current state.

And the problem will be solved. And most of the field upheaved.

But is the problem really solved solved? Nah.

What you mean is it's not solved from your perspective of the word solved. Again, that's the central point, that theoretical research is asking different questions (and answering them).
Unless of course, you realize you need to optimize that particular use case... then you implement that ideality as a special case. ;)
Exactly, but it then the just-good-enough case is the one that is really really efficient.