On theory vs practice in CS

by Oded Goldreich

One often hears lamentations regarding the gap between theory and practice in CS. Similarly, one hears complaints about the separation of the theoretic and applied branches of CS, which supposedly does not exist in most sciences.

The first thing that I find odd in all of these lamentations and complaints is that they are directed to theory (i.e., TCS or TOC). It seems to me that the branch that, by definition, is responsible of making such connections and trasportations is the applied branch (not the theoretical one).

Putting responsibilities aside, there are two things that should be said about the demand that CS behaves like other sciences. The first thing is that it is not true that CS is that singular w.r.t the gap between theory and practice (respectively, basic and applied research). The tension between basic and applied research is present in any science, although it may take different forms in different sciences. These forms may depend on the contents of the different sciences (i.e., their formative questions, their scope of interests, and their scope of activities). In some sciences, researchers move constantly between basic and applied research, while in other sciences this is not possible (or is much more difficult). The possibility and/or ease of such moves depend on the contents of the specific field, but even when such moves are easy the distinction remains (and is often reflected in instituitional structures; e.g., chemical engineering vs chemistry).

The second (and more important) point to be made is that TOC (or any other science for this matter) is not required to follow the mold of other sciences. It may chose its own structure, reflecting its own interests and activities. It is only required to follow the basic ethos of science, which includes (cf., [Merton 1957]) commitment to communism (i.e., sharing), universalism, disinterest (i.e., freedom from economic or political motivations), originality, and organized skepticism (i.e., methodological doubt).

Indeed, it is wrong to impose the structure and/or culture and/or methodology and/or attitudes of one discipline on another discipline. Each of these aspects should fit the contents of the specific discipline, and thus different disciplines (which, by definition, have different contents) should be expected to be significantly different in these aspects. Finally, I would claim that CS (not only TOC) is closer to Math than to any other science, because it deals mainly with objects that the product of intentional, conscious and detailed human design (rather than with objects of the natural reality). This feature of the contents as well as its high level of abstraction sets CS and Math apart from the other sciences.

Back to Oded's page of essays and opinions or to Oded's homepage.