Skip to content

Comment on Engineering Is Not Science

Comments

Robert Hooke wrote Micrographia, about his observations using a microscope. Today the field is called Biology. The field of Computer Science is still stuck with the name of its primary tool. It like calling cosmology "Telescope Science".

The distinguishing feature of a scientist is the ability to observe and generalize. The engineer is good at constructing things. In the early days of a science you need both skills to get things going, so it is easy for outsiders to confuse the two.

But the word "computer" is different than the word "telescope" in that the computer is actually fundamental to computer science. Computer science is about what information can be expressed with a computing device. It is fundamental information science that is as transcendental as physics, and frankly probably more transcendental than biology (as we know it today).

You can do biology w/o the existence of microscopes. But there is no computer science w/o the existence of computers (models where computation is performed). "Computer" is to computer science what "life" is to life science or "physical" is to physical science. It's the fundamental underpinning on which it is built. It's just happenstance that we have physical devices that manifest a specific representation of a computational model.

Computer science is about what information can be expressed with a computing device.

This kind of proves the point that the name is not adequate. Let's pick an example. Kolmogorov complexity is a tool used to discuss randomness and the limits of data compression. It cannot be calculated on a computing device. So let's kick it out of CS. Meanwhile all the javascript programmers who are diligently engineering the next banking application UX can call themselves computer scientists instead of engineers if they want to. And maybe there is a whiff of science in A/B testing.

My point is that the name of the field shows its immaturity. Hooke wasn't looking for chromosomes and DNA through the microscope. So at that stage the game his field would have been limited to "Stuff that can be seen with a microscope". The stuff we are going to discover with computers has only been glimpsed. And, as you say, it won't be about computers.

Kolmogorov complexity is a tool used to discuss randomness and the limits of data compression. It cannot be calculated on a computing device.

What are you talking about? Kolmogorov complexity is all about calculating on a computing device (but lets be clear, a computing device is not that thing under your desk or in datacenters -- it can just as easily be a Turing machine or binary lambda calculus or digital circuits).. All "complexity" theory is about calculations on a computing device. Otherwise how are you compressing the data? Where does the data live? How do you measure the programs that interpret the strings? What do the programs run on? Kolmogorov complexity is simply a subset of information theory, all of which lies in the field of computer science, as it is all about how one expresses information over a computational model.

Now, just because you use a computer doesn't mean you're doing computer science. Here's a simple test, if you're answering this question, "For some model of computation is X true" then you're doing computer science. If you're not, then you're likely doing engineering. Building a banking application is generally not attempting to answer that question.

Everything in all complexity theory, algorithms, programming languages, AI, quantum computing, etc... require the existence of computers.

They way I like to phrase it is that computer science is everything that involves the theory behind and the implementation of the concept of computation.

Yeah, but it turns out, one of the best thing you teach someone to write good software is a bunch of theory of computation. It both shows abstract thought and teaches them how things work.

I think you're getting hung up on the degree, which is called "Computer science" with the professions which use those who have the degrees, mainly, all the varieties of software construction efforts which all have lots of names.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.