Live data from Hacker News

“Computer science is not about computers”

quoteinvestigator.com

251–260 of 293 posts

Re: “Computer science is not about computers”

#251
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... , _…

You imply that mathematics isn't concerned with notation?

Re: “Computer science is not about computers”

#252

CS is a way of thinking about how to solve things, with regards to efficiency of solution. Example: my wife likes to put gym shorts and shirts in different drawers. To my CS mind that doubles the seek time of a retrieval. The little bowl by the door is a cache of my most recently used stuff. People who nearly file their papers (eg bills) nearly are optimizing for retrieval efficiency - of an operation that is actuall…

> To me that's weird because calling the elevator is long running IO in a separate thread - might as well start it asap.

Oh, man. I've felt exactly the same way wrt. a lot of IRL scenarios, implicitly optimizing the number of "threads" I can do tasks in, for instance:

- starting an automated but lengthy task (e.g. choosing Nixpkgs PRs to automatically review) before going out for a period of time

- starting the microwave heating food before going to the toilet

- pressing the elevator button before tying my shoes (in a private elevator scenario)

Distinct from multitasking, which splits your attention, here, you can still dedicate attention to a task at hand while knowing in the background that a thread is running. These types of behaviors may not really do all that much long term, but it sure feels nice you optimize IRL scenarios.

Re: “Computer science is not about computers”

#253
post #109

Earlier quoted context omitted.

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…

> 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'd be interested in a source for this. Lambda calculi are used as the basis for several functional programming languages, which seems to argue against the idea that they're less easy to reason about. They're also used as the basis for proof ass…

According to this:

https://plato.stanford.edu/entries/church-turing/

"In his review of Turing’s work, Church himself acknowledged the superiority of Turing’s analysis of effectiveness, saying:

computability by a Turing machine … has the advantage of making the identification with effectiveness in the ordinary (not explicitly defined) sense evident immediately. (Church 1937a: 43)"

Moreover, Gödel himself (as well as other mathematicians) found Turing machines and Turing's thesis to be more persuasive:

Gödel also found Turing’s analysis superior. Kleene related that Gödel was unpersuaded by Church’s thesis until he saw Turing’s formulation:

According to a November 29, 1935, letter from Church to me, Gödel “regarded as thoroughly unsatisfactory” Church’s proposal to use λ-definability as a definition of effective calculability. … It seems that only after Turing’s formulation appeared did Gödel accept Church’s thesis. (Kleene 1981: 59, 61)

Gödel described Turing’s analysis of computability as “most satisfactory” and “correct … beyond any doubt” (Gödel 1951: 304 and *193?: 168)."

For what it's worth, I do think you've started an interesting discussion!

You're allowed to have an opinion that you prefer lambda calculus over LCMs (logical computing machines -- a better term for Turing machine's that Turing favoured) for conceptualizing and reasoning about computation mathematically.

Myself, I find Conway's game of life to be the superior framework over both lambda calculus and Turing's Logical Computing Machine :-P

Re: “Computer science is not about computers”

#254

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

> 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 is a non-sequitor. Google hires a lot of PL PhDs (I'm one of them). And for relevant teams there is a "Domain Expertise" portion of the interview. And many of the people working on the languages and frameworks you mention have such background.

You don't like these systems. That's fine. But "Google would do it all differently if they just hired some PL PhDs" is just false.

Re: “Computer science is not about computers”

#255
post #93

Earlier quoted context omitted.

Whenever this comes up I feel compelled to say that Dijkstra has a huge blind spot with this, that perhaps is more obvious with decades of hindsight. He advocates formal proof for a functional specification of a program to be part and parcel of writing it, and note that what he refers to by formal proof is ambiguous. If he means the informal proofs mathematicians write and publish all day long, these actually include…

One of my Uni professors was working on Proof-carrying code *( https://en.wikipedia.org/wiki/Proof-carrying_code ). I got a cursory involvement. Although I agree with you, the fact that there is a way forward and is entirely based in mathematics (on the formal side) makes me also agreeable with OP. I don't see a contradiction. If you talk about the more informal side- the way something is used does not necessarily de…

There is a way forward, but it is tedious as all hell. I love formal methods. I spent years in grad school working in it. But the truth is that formal reasoning struggles to scale to interesting programs, especially if you have to consider open programs, and is utterly incoherent for most software engineers. You can compare something like symbolic execution, which seems amazingly elegant and powerful, with coverage guided fuzzing, which is hacky and random. Coverage guided fuzzing eats symbolic execution for lunch.

Re: “Computer science is not about computers”

#256

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…

What are the best ways to fill in those gaps? I bet many of us never enjoyed those classes in school, or even had a traditional computing education.

You could find a MOOC (Massive open online course) for pretty much any programming language you want. Here's a pretty good one for Haskell.

https://haskell.mooc.fi

Re: “Computer science is not about computers”

#257
post #231

Earlier quoted context omitted.

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.

This is basically the True Scotsman argument.

Re: “Computer science is not about computers”

#258
I used to say Computer Science is not about computing, nor is it about science. But Nand2Tetris changed that slightly.

When you realise the fundamentals are loops, data, comparisons, addition, negative numbers and instructions of those then computer science is building logical structures based on said computational primitives.

Re: “Computer science is not about computers”

#260

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

I know someone that was on the Dart team. He's a PLT expert. In fact that's rather understating it. Don't mistake some pragmatic choices in language designs targeted for business use with ignorance.
Post reply on HN