Hacker News new | ask | show | jobs
by Ar-Curunir 1737 days ago
Computer Science is about what computers can do. To decide the latter, you have to first decide what a computer is. Turing Machines were the first abstractions that intuitively captured what it means to compute something
2 comments

Sure, if you take "computer" to mean "something that computes". In that case it would include humans. There was a great deal of research into things that can be effectively computed that goes back even before the focus of this article. And of course "computer" used to refer to humans who computed before the invention of mechanical computers.

But it's certainly not the study of what mechanical computers can do. Among other things, mechanical computers all have bounded resources unlike Turing machines.

A whole bunch of Computer Science is only relevant for actual computers not Turing Machines. When I was (a student) at University they didn't teach Wait-Free versus Lock-Free concurrent algorithms, but that's an important 21st century topic because actual computers today are capable of many simultaneous operations, and it's totally possible to write a program that isn't even Lock-free and may literally make no progress despite spinning its wheels.
Yes that is true. There are applied sub-disciplines for all of the science. Typically you would call that something like "applied computer science" or "computer engineering", but CS is new enough that it hasn't split like that yet.

Nobody is saying that's not important. But the field as a whole began before mechanical computers were invented or practical, and there are several subfields that are basically indistinguishable from mathematics.

I mean, if you want to relegate CS to only mean theoretical CS, then you’d be in a small population: most theorists don’t want that, even. One of the cool things about CS is the rich interplay between applications and theory, and separating the two would only harm both.
Nobody is trying to relegate CS to a theoretical discipline. But theoretical CS exists, so it doesn't make sense to claim CS is the study of mechanical computers. Since it started as a theoretical discipline, it makes even less sense to say that the field was founded when we first figured out how to practically mechanize the ideas in CS.
I mean, my university still has separate Chemistry and Astronomy departments, but at yours following your preferred nomenclature, how do they distinguish among all the resulting departments called stuff like "Applied Philosophy", "Applied Philosophy" and "Applied Philosophy" ? Or is it that for some reason you think only Computer Science should be singled out in this way?
I sense that you're trying to make a joke.

In any university, Chemistry is not the study of beakers nor is astronomy the study of telescopes.

But Chemistry cares about actual chemicals and Astronomy cares about our actual universe. Likewise, Computer Science is overwhelmingly concerned with actual computation. You aren't identifying a distinction here.

Both Software Engineering and Computer Engineering exist, as sub-disciplines, but it doesn't make sense to argue that somehow studying Graphene (a chemical which exists) is Chemistry while studying non-blocking algorithms is only Applied Computer Science somehow just because such algorithms could be used on an actual computer.

Mechanical computers approximate Turing Machines, just like NP approximates RE: instead of asking “does this program halt?”, we ask “does this program halt in N steps?”.

If N is sufficiently (polynomially) large, the two are approximately equal.

> Mechanical computers approximate Turing Machines

Yup, so do humans with paper and pencil.

that's not the case, according to the article. If anything the article implies the opposite. Turing machines were a re-abstraction of Godel's computational model that provided a path to mechanical realization.

Also if you ever work with the turing machine (NFA hooked up to an infinite recording tape) it is not at all "intuitive" that this construction comprehensively captures the world of computation.

Godel's computational model does not intuitively capture what it means to compute. Godel himself was unconvinced that his model was universal, and it took Turing's paper to convince him that his model, lambda calculus, and Turing machines were equivalent and universal.