Science vs Engineering

There are two kinds of researchers: scientists and engineers. Faced with a problem, the scientist will say “How interesting” and proceed to abstract and classify it, develop experiments to reproduce it, and come up with a theory to understand it.

Faced with a problem, the engineer will say “How can we solve this” and proceed to measure and discretize it, build a model, refine and rework it, until it solves the problem.

Thanks to science, our understanding of the problem has increased. Thanks to engineering, we have one problem less. Ideally, these two disciplines should work hand in hand. Scientists analyze the problem to help understanding it, with an eye on possible solutions. Then engineers use that knowledge to solve the problem more efficiently. And indeed, scientists often try to sound more engineering, and engineers more sciency. But that is mostly wishful thinking.

In reality, the two camps know little and think even less of one another. Scientists easily get absorbed and sidetracked by fascinating details, producing knowledge for the sake of knowing. Engineers get just as fascinated, yet with task specific details, tailoring their solutions so exactly to the problem at hand that they have to start almost from scratch when faced with a similar one.

“What do I care why it works, as long as it does”, says the engineer. And more often than not, it involves some hack to get there.

“What do I care how it works, as long as we learn something”, says the scientist. Yet sometimes, even that is not guaranteed. The main difference between the two is the nature of the outcome. Engineering sells better, science―not so much.

Linguistics is clearly a science (I could not think of any product linguistics has fostered). Computer science, despite the name, is mostly engineering (unless it’s theoretical CS). Somewhere in the middle, there’s Computational Linguistics, and there, waving, is little me…

In this ambivalent field, one seems to have to choose a side. Being a linguist by training and nature, I am primed on sciences. Yet getting a PhD in CS often incurs being asked to solve engineering problems which have a linguistic component. It’s like trying to make me an engineer with a knack for language. It took me the better half of a year to realize that that is not who I am: I want to us the toolkit of CS to understand linguistic problems. A scientist with a knack for engineering, maybe. A fine distinction, yet an important one. At least for the person who makes it… But what does it matter, as long as we can bridge the gap between the two!

Thanks to engineering, this is the first post I wrote in English and then translated back into German. And thanks to science, I was able to know which parts I should correct. And why…