12 August 2010

"Scientists, engineers, and politics"

The Thinker | Jeffrey Ellis | Scientists, engineers, and politics

Hopefully you will now understand that the term “rocket scientist” is a misnomer. There are no rockets existing in nature, waiting for scientists to come decipher their underlying principles. Rockets are designed and built by engineers, so the correct term should be “rocket engineer.”
This is one reason I wish my field was not called "computer science." I don't study computers, as they exist as physical objects. I study computation, the abstract process. Computers are only a tool for computation.

(The other main reason I don't like being a "computer scientist" is because it gives people the expectation that I can or am interested in fixing their computer, but that's neither here nor there.)
Scientists deal with the scientific method and apply it to investigating how nature works. When a hypothesis fails, it’s still progress: the scientist successfully proved that something isn’t the correct explanation. Eventually the underlying principle is discovered, reinforcing scientists’ faith in intellect and the scientific method. It doesn’t seem too odd to me, then, that scientists lean towards the liberal/progressive view that smart people can plan, manage, and fix things, without incurring dangerous unintended consequences. (Einstein, for example, was a huge fan of central planning and an apologist for Stalin.)
I have always found computer scientists and associated folks to be more libertarian than average.  Why this is is a perennial subject of discussion.  I have several possible, non-exclusive answers.

I think things might be a little different in Computer Science than in Science generally, primarily because CS is a discipline of mathematical problem solving.  Let me explain a bit, since everyone likes to think (with varying degrees of correctness) their discipline is about problem solving.

Algorithms and Data Structures are the heart of CS.  When you give an answer on an algorithms exam it's not the solution to a specific problem, it's a method for solving any instance of a general class of problems.  Computer Science is all about explaining to a rather dumb machine the exact steps needed to take an unknown input and turn it into something useful.  Computer Scientists don't just have to solve problems, we have to get an idiot to solve them for us.  Then we spend much time analyzing the complexity of problems and solutions.

I think grounding in complexity theory, in addition to familiarity with things like distributed systems, makes it easier for CS people to appreciate exactly how difficult it is to control societal mores or economics outcomes from the top-down.  I have explained, for instance, the socialist calculation problem to fellow computer scientists by saying that n = 300,000,000 people and d = [several trillion goods and services throughout time and space].  They know of the curse of dimensionality intimately.  Their instinct tends to immediately recognize that no algorithm could ever solve that for an optimal allocation.
Just as scientists defend science against quackery and take a dim view towards “pseudoscience” (misguided beliefs and practices disguised as real science), I think engineers are hostile towards what I’ll call “pseudoengineering” — intellectually arrogant attempts to plan, manage, and engineer things (e.g., society) that are divorced from any tried and true processes and methods.
Great term. I'm going to have to use that.

No comments:

Post a Comment