Live data from Hacker News

“Computer science is not about computers”

quoteinvestigator.com

141–150 of 293 posts

Re: “Computer science is not about computers”

#141
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…

Although the standard proof of the incomputability of the halting problem assumes it is computable and then reaches a contradiction. And that's more or less the central proof of everything to do with computability.

Re: “Computer science is not about computers”

#142

Earlier quoted context omitted.

That is true but in french at least "informatique" means both "computer science" (for example you can study "informatique" at university) and "anything related to computers". "What's your line of work?": a DBA, sysadmin, software developer, computer scientist, etc. may all answer simply "informatique". A series of books for beginners about Excel, Word, Internet, etc. may be called "Collection informatique". Or if, sa…

In Germany, anything computer-related is subsumed under "Informatik". - Students learning to use MS Office in school? Informatik. - People fixing printers and replacing your harddrive? Informatik. - System administrators managing a datacenter? Informatik. - Data scientist applying deep learning techiques? Informatik. - University professor trying to prove P==NP? Informatik. Honestly, I envy the Americans for their de…

It depends on the context. A university degree in Informatik will obviously not be about using MS Office. But 7th grade Informatik is. 10th grade Informatik introduced programming at my school. A trained job “Fachinformatiker für Systemadministration” will be about sysadmin work.

Re: “Computer science is not about computers”

#143

For my entire time as an undergraduate, the large top-ten research university I attended offered no courses in programming language theory, nor were these topics woven into the computing curriculum at large. (actually, there may have been a handful of graduate courses, but undergrads were strictly prohibited from joining -- there was a mandatory theory of computation class required for all CS majors, but the topics v…

This also applies to interviewing. Google for instance generally doesn't include anything PL theory related in their interviews, even though it would often be more relevant to the work than random dynamic programming problems. As a result of this they produced languages and frameworks like Go, Dart, Angular and Tensorflow, which display ignorance if not outright contempt for modern programming language theory. This led to the latter two being mostly replaced by React and Pytorch, which are more influenced by language design best practices, to Dart being mostly ignored, and to Go being violently rejected by a significant subset of the programming community.

Re: “Computer science is not about computers”

#144
post #99

Earlier quoted context omitted.

> 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…

Although the standard proof of the incomputability of the halting problem assumes it is computable and then reaches a contradiction. And that's more or less the central proof of everything to do with computability.

That's still constructive. This can be a confusion because there's actually two kinds of contradiction proofs:

  to show ¬ P, assume P then derive a contradiction (false, ⊥)
i.e., ¬ P := P -> ⊥. This is actually just fine and constructive, it's just how you prove a negation.

OTOH, there's another kind of contradiction proof:

  to show P, assume ¬ P, then derive a contradiction (false, ⊥)
Written with function notation, this becomes P (¬ P -> ⊥)

But if we unfold the definition of negation, we have that

  P  ((P -> ⊥) -> ⊥)
The left to right direction holds classically and constructive, but the right to left direction uses double negation, which can is equivalent to the law of the excluded middle, AKA classical reasoning.

Re: “Computer science is not about computers”

#145

Earlier quoted context omitted.

I personally feel the pain of this when trying to hire someone who understands core concepts in PL theory and can help maintain a framework. It's also not the sort of thing I can teach to my Sr devs on the job in under a year when they've never even touched anything like forth or lisp, or even tried to write a parser by hand.

I feel an analogous pain on the flip side of interviewing! I would kill for a job that lets me exercise some of these skills, rather than the brain rot of a typical software job which doesn't demand that one thinks too deeply about things.

I think the only way to do this might be founding your own company and building your own product in Forth and Lisp.

Re: “Computer science is not about computers”

#146

Earlier quoted context omitted.

This is good thinking and I am sad to hear that it is unconventional. And now I'll contradict the part of what you said about finite structures: At a theoretical level, the field deals with infinite structures, namely the Turing Machine tape and infinite time. We use finite Computing Machines to simulate a finite section of that tape in a finite time. Maybe we should call it Turing Machine Science, because we use com…

> 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.

Re: “Computer science is not about computers”

#147
post #107

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.

If you like, we can generalize and call it "computation science" to avoid the focus on the tool/machine in favor of the process.

https://youtu.be/2Op3QLzMgSY?t=16

Re: “Computer science is not about computers”

#148
post #109

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.

Why would you think that? I believe I’ve read that even Church himself said that Turing machines are a more elegant basis for computations, since they are much easier to mathematically reason about. I’m sure one can prove everything proved for Turing machines for lambda calculus, but I disagree with your statement that it is more mathematically grounded. It may be true in a syntactic form, but definitely not in a mat…

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 better basis is a combination of lambda calculus for defining mathematical structures and (Von Neumann based) agent-based models for defining stateful processes.

Modern programming languages are evolving to be capable of representing either model, to adapt themselves to the style more suited to the problem at hand.

Re: “Computer science is not about computers”

#149
post #91
post #89

Earlier quoted context omitted.

Programming languages are not full linguistics, at least not yet. We focus primarily on syntax, semantics and pragmatics. All of this, though, is firmly rooted in mathematics, defining grammar as expressions and mathematical relationships. This then enables formal mathematical proofs where we can reason about outcome. I don't know if there exists such search that you mention, or it is more of an optimization of langu…

I once read an article suggesting that reading computer code does not activate the regions of the brain that are involved in language processing: https://news.mit.edu/2020/brain-reading-computer-code-1215 This may indicate that the sampled programmers did not program in the way it can be done for example with declarative languages, i.e., primarily as a linguistic activity where we describe what we know about the task…

Did they compare identical information expressed as written language or programming language or did they compare messages that contain logic expressed via programming languages vs messages that don't contain logic expressed via written languages?

Re: “Computer science is not about computers”

#150

Earlier quoted context omitted.

This is good thinking and I am sad to hear that it is unconventional. And now I'll contradict the part of what you said about finite structures: At a theoretical level, the field deals with infinite structures, namely the Turing Machine tape and infinite time. We use finite Computing Machines to simulate a finite section of that tape in a finite time. Maybe we should call it Turing Machine Science, because we use com…

> 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.

> Turing machines are arbitrary and rather unmathematical.

Thus proving the point that a field that studies them cannot be considered a branch of mathematics.

Post reply on HN