
Is Complexity Theory On The Brink?  - wglb
http://rjlipton.wordpress.com/2010/11/19/is-complexity-theory-on-the-brink/
======
amichail
Do you think complexity theory gets more attention than it deserves given its
impact on practical computing?

~~~
ihodes
Though I'm no complexity theorist, I can assure you than complexity theory is
one of the biggest math/CS fields that has everyday, practical impact on
"practical computing."

If you use any sort of non-trivial algorithms handling a non-trivial amount of
data, you damn well better be interested in the relationship between the
runtime of the algorithm and the number of things you're asking it to handle
(Big O).

If you're designing a novel algorithm (or at least, novel to you) you should
at least have a passing familiarity with complexity classes. It's funny how
often I hear about (or see first-hand) someone trying to figure out why their
code won't always work only to have pointed out to them that their problem is
NP-C.

Not only all of that, but complexity theory supplies all sorts of better
algorithms—or, rather, methods to improve a general class of algorithms, I
suppose—which can immediately or eventually be applied to your everyday
problems.

Perhaps you don't need to deal with a lot of these problems on a daily basis,
but chances are that some of the tools you use were built by people who
worried about them.

It's a neat field, and I'm excited to see these advances.

~~~
amichail
Complexity theory seems only interested in algorithms that shed light on
complexity classes.

What has complexity theory done recently that is of practical importance?

~~~
ihodes
A simple Google search brings up a multitude of papers and book on the subject
of the practical applications of complexity theory, so I'll spare you a list.
Wikipedia also has some nice example. RTFM, but I mean it in the nicest way.

But, for instance, I recently ran into some complexity theory when exploring
some of these topics, which are _quite_ practical:

    
    
        • implementing a parser-generator 
        • lambda calculus reductions (for a lisp-y interpreter) 
        • encryption/security (you don't want there to be a 
          simple function to crack your crypto, right?)
    

It's totally useful, and totally relevant. And it's a lot of fun if you can
get past the initial 90º learning curve.

~~~
jules
That's not what complexity theorists work on. You could put any algorithm
under the label complexity theory, but that's not what complexity theorists
do.

~~~
shadowfox
So what do they work on?

~~~
jules
Proving lower bounds on complexity and inventing algorithms that have
theoretically better complexity but are most times useless in practice (for
example the O(n^2.376) algorithm for matrix multiplication).

