Live data from Hacker News

“Computer science is not about computers”

quoteinvestigator.com

241–250 of 293 posts

Re: “Computer science is not about computers”

#241
post #231
post #73

My view is quite unconventional, but I believe, computer science is a branch of mathematics that deals with large but finite structures (so they need an algorithmic description). Compare with most of "legacy" mathematics, which studies countable structures (so the description can use arbitrary series). Of course, there are larger sets, but they mostly serve as a theater (just like countable infinity is just a theater…

Please explain how Dijkstra's _Go To Statement Considered Harmful_ (see https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.p... for the text) is part of mathematics. Then Knuth's famous reply _Structured Programming with Go To_ (available at http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103... ) and then the much later follow-up at https://cis.temple.edu/~ingargio/cis71/software/roberts/docu... , _…

Those papers you mentioned are closer to the field of Software Engineering.

Re: “Computer science is not about computers”

#242

Earlier quoted context omitted.

Turing machines are terribly inefficient, though. They may be easier to reason about than lambda calculus, but not good for practical computing purposes. Their value was in proving that logical and mathematical reasoning could be mechanized with an automatic device, something that had not been clear until then. Computing science cares a lot about building efficient processes. Thus to create real working programs, a b…

This whole debate is always so bewildering. Programming paradigm fanboys get into heated arguments about which model is the "best" one, but actual computer science research uses myriad different models of computation, usually endeavoring to select the one that is most convenient for the given purpose. Sometimes that could mean using the lambda calculus, particularly in study of language theory and type systems. Other…

> Programming paradigm fanboys get into heated arguments about which model is the "best" one

My original comment certainly reads that way, but my intent was really to point out that it doesn't make sense to privilege the Turing machine model in the study of computation. I wrote more about why in this comment: https://news.ycombinator.com/item?id=27334163

Re: “Computer science is not about computers”

#243
post #138

Earlier quoted context omitted.

> Maybe we should call it Turing Machine Science Nope. Turing machines are arbitrary and rather unmathematical. The lambda calculus is a much better computational formalism, more mathematically grounded and oriented, with far more direct practical applications.

This by the way is the most arrogant comment I've seen on this site.

What about my comment makes it so arrogant?

In case it helps, I've provided some substantiation for my position here: https://news.ycombinator.com/item?id=27334163

I should also clarify that I didn't intend to argue that lambda calculus should be the only way of understanding computation, but rather that it doesn't make sense to privilege the Turing machine model, as the comment I was replying to suggested.

The Turing machine model is arbitrary, and it is unmathematical in the sense I've described in my comment linked above. A different culture (or species!) would be likely to come up with a different computational machine-like model, but any culture that develops formal logics would be likely to discover the lambda calculus as a consequence of that.

Re: “Computer science is not about computers”

#244
post #146

Earlier quoted context omitted.

> Maybe we should call it Turing Machine Science Nope. Turing machines are arbitrary and rather unmathematical. The lambda calculus is a much better computational formalism, more mathematically grounded and oriented, with far more direct practical applications.

This reads like total nonsense to me. Why would Turing machines be 'arbitrary and unmathematical'? What's 'unmathematical' about them? They can be formally and precisely described and I don't know of any mathematician who wouldn't accept TMs as a sound definition.

> They can be formally and precisely described and I don't know of any mathematician who wouldn't accept TMs as a sound definition.

Just because something can be formally and precisely described doesn't necessarily mean it's (aesthetically) "mathematical". Another example that comes to mind now is the notion of an applicative functor (Applicative in Haskell) — sure, you can give the categorical definition for it but it's quite an oddly specific structure (if anyone reading this knows where they arise in non-FP contexts, I'd really like to know!).

So for Turing machines, maybe a question we might ask is, "how can we ensure Turing machines always terminate?" This is a much harder question than say, imposing a type system on untyped lambda calculus which unconditionally makes all terms terminate, while still retaining the ability to do recursion and useful work.

A good yardstick to judge the "mathematicality" of a construction often amounts to looking at its compositional properties. That is, could you re-use the concepts over and over again, and could variants of the structure be uniformly described? While Turing machines and lambda calculus are both equivalent and can be both formally described, one does win over the other in terms of having a simpler, more compositional structure.

This is quite subjective, and in any case it feels remarkable that both Turing and Church came up with their constructions to describe computation formally!

Re: “Computer science is not about computers”

#245
post #146

Earlier quoted context omitted.

This reads like total nonsense to me. Why would Turing machines be 'arbitrary and unmathematical'? What's 'unmathematical' about them? They can be formally and precisely described and I don't know of any mathematician who wouldn't accept TMs as a sound definition.

> They can be formally and precisely described and I don't know of any mathematician who wouldn't accept TMs as a sound definition. Just because something can be formally and precisely described doesn't necessarily mean it's (aesthetically) "mathematical". Another example that comes to mind now is the notion of an applicative functor (Applicative in Haskell) — sure, you can give the categorical definition for it but…

> Just because something can be formally and precisely described doesn't necessarily mean it's (aesthetically) "mathematical".

Thank you, this is exactly what I was getting at.

Re: “Computer science is not about computers”

#246
post #214

Earlier quoted context omitted.

> I believe, computer science is a branch of mathematics that deals with large but finite structures (so they need an algorithmic description). This is a strange claim since the entire field was founded upon the investigation of potentially (and often actually) infinite computations. > Compare with most of "legacy" mathematics, which studies countable structures (so the description can use arbitrary series). Define "…

> Computer science is a part of math? OK, but so what? Computer science is not a part of math? OK, but so what? Neither conclusion would tell us anything useful. I assumed the implication here is that CS, like math, is considered by many to not be a science, but rather a field of construction based on logic. The obvious problem with calling computer science a science is that it isn’t fundamentally based on measuring…

> it isn’t fundamentally based on measuring empirical evidence of a natural process.

What leads you to say this? If computation is in some sense the construction of certain forms of mathematics, is computer science not then the empirical study of computers (the objects which instantiate the math) and computation (the process of instantiation)? Of course there is abstract theory as well, but that's just as true in physics

Newell and Simon had some thoughts: "We build computers and programs for many reasons. We build them to serve society and as tools for carrying out the economic tasks of society. But as basic scientists we build machines and programs as a way of discovering new phenomena and analyzing phenomena we already know about... the phenomena surrounding computers are deep and obscure, requiring much experimentation to assess their nature."[0]

The fact that digital computation is a new process doesn't make it "unnatural", it might be argued; some also contend computation takes place not merely in digital computers but much more generally, in which case distinctions between computer science/cognitive science/physics blur

Agree with your broader point, though. I'm not aware of any consensus on the epistemological or ontological status of computer science, or on its relation to the other sciences. It seems (to me) subject to many of the same philosophical questions that dog mathematicians, re: discovery vs. invention, the uncertain reality of various abstractions, generalizability, etc

Likewise agree that consideration of the methods employed in computer science can be fruitful, in particular if the goal is not so much to establish once and for all which category CS falls most naturally into, but simply to stimulate critical thought about the fundamental questions

[0]: https://dl.acm.org/doi/10.1145/360018.360022

Re: “Computer science is not about computers”

#248
post #99
post #73

My view is quite unconventional, but I believe, computer science is a branch of mathematics that deals with large but finite structures (so they need an algorithmic description). Compare with most of "legacy" mathematics, which studies countable structures (so the description can use arbitrary series). Of course, there are larger sets, but they mostly serve as a theater (just like countable infinity is just a theater…

> computer science is a branch of mathematics that deals with large but finite structures (so they need an algorithmic description) Another way to put this is that computer science deals with mostly constructive mathematics (more precisely, mathematics that uses intuitionistic logic, the kind that is natural to most programmers and computer scientists anyway). For instance, when you prove the fundamental theorem of a…

I find relevance logic much more intuitive than intuitionistic. Intuitionistic has still some weird assumptions that make it fit a lookup table like classical logic.

Re: “Computer science is not about computers”

#249
post #146

Earlier quoted context omitted.

This reads like total nonsense to me. Why would Turing machines be 'arbitrary and unmathematical'? What's 'unmathematical' about them? They can be formally and precisely described and I don't know of any mathematician who wouldn't accept TMs as a sound definition.

> They can be formally and precisely described and I don't know of any mathematician who wouldn't accept TMs as a sound definition. Just because something can be formally and precisely described doesn't necessarily mean it's (aesthetically) "mathematical". Another example that comes to mind now is the notion of an applicative functor (Applicative in Haskell) — sure, you can give the categorical definition for it but…

> Just because something can be formally and precisely described doesn't necessarily mean it's

> ... (aesthetically)

The 'aesthetics' part is an interesting argument I didn't see, and yes, I agree that a particular concept arising in different areas of math is 'aesthetically pleasing'.

> ... "mathematical"

That's the part I have a problem with, mathematical objects are (more or less) exactly those that can be precisely and formally described. "Lambda calculus is a more elegant mathematical object" is not a statement I have a problem with, "Turing machines have a lesser status as mathematical entities", on the other hand, is sort of weird.

> So for Turing machines, maybe a question we might ask is, "how can we ensure Turing machines always terminate?" This is a much harder question than say, imposing a type system on untyped lambda calculus which unconditionally makes all terms terminate, while still retaining the ability to do recursion and useful work.

You can bound the number of steps or the size of the tape :) That's not a "well, actually", the point I'm making is that other computational models (TMs, pointer machines, RAMs, counter machines) are more natural formalisms to think about some problems. Sure, logic/proof theory is intimately related to lambda calculi and it would be extremely unnatural to formulate the same ideas using Turing machines, but for things like analysis of algorithms, complexity theory or numerical analysis it would be similarly unnatural to use lambda calculus as the computational model instead.

They certainly aren't lesser forms of math, even though one might find them less aesthetically pleasing.

> ... it feels remarkable that both Turing and Church came up with their constructions to describe computation formally!

It is. It completely blew my mind when I first learned about that fact. If computation can be exactly described by different formalisms resulting in the exact same set of computable functions, then it must be a very fundamental feature of how "things" work!

Re: “Computer science is not about computers”

#250
post #249

Earlier quoted context omitted.

> They can be formally and precisely described and I don't know of any mathematician who wouldn't accept TMs as a sound definition. Just because something can be formally and precisely described doesn't necessarily mean it's (aesthetically) "mathematical". Another example that comes to mind now is the notion of an applicative functor (Applicative in Haskell) — sure, you can give the categorical definition for it but…

> Just because something can be formally and precisely described doesn't necessarily mean it's > ... (aesthetically) The 'aesthetics' part is an interesting argument I didn't see, and yes, I agree that a particular concept arising in different areas of math is 'aesthetically pleasing'. > ... "mathematical" That's the part I have a problem with, mathematical objects are (more or less) exactly those that can be precise…

> That's the part I have a problem with, mathematical objects are (more or less) exactly those that can be precisely and formally described. "Lambda calculus is a more elegant mathematical object" is not a statement I have a problem with, "Turing machines have a lesser status as mathematical entities", on the other hand, is sort of weird.

I agree as well. I don't think Turing machines have any lesser status (it's literally equivalent to lambda calculus, after all!)

> but for things like analysis of algorithms, complexity theory or numerical analysis it would be similarly unnatural to use lambda calculus as the computational model instead.

That's a good point as well. Because of the nature of hardware, neither lambda calculus nor Turing machines are very good fits, so RAMs and pointer machines essentially take over.

Post reply on HN