Live data from Hacker News

The Essence of Programming (2021)

gingerbill.org

61–69 of 69 posts

Re: The Essence of Programming (2021)

#61

Earlier quoted context omitted.

certainly an intriguing case, Dijkstra. I smell pedantry...but I could be wrong. A person so deeply involved in CS and not having a computer??? That's like saying being an expert cook but not wanting to taste food.

> A person so deeply involved in CS and not having a computer??? I looked for a reference just now and couldn't find one. This mentions it: > Dijkstra was famous for his general rejection of personal computers. Instead of typing papers out using a word processor, he printed everything in longhand. https://www.mentalfloss.com/article/49520/retrobituaries-eds... > That's like saying being an expert cook but not wanting…

People don't do computer science for the mere theory of it. In the end, CS should yield utility--solve problems in the real world and those problems are solved through the medium of computers.

There is a reason it is called COMPUTER science while astronomy is not "telescope science". The analogy is faulty as well:

>> "Computer science is no more about computers than astronomy is about telescopes":

You can't compare astronomy to CS--astronomy needs both computers and telescopes and spaceships--but in CS, the computer is the central figure. If not, can you think of ANY other tool that represents CS?

>> "Calling it computer science is like calling surgery knife science." is another faulty analogy. The knife does not have the same amount of critical importance both as a mean and an end in surgery, as does the computer for CS; in other words, a knife is merely a means to an end in surgery, but in CS, the computer is both the mean and the end: in the latter case, the computer is a sort of representative of all the knowledge and practice in CS, in a given time. The sophistication of the computer and what it can do, represent, to a large extent, what we have achieved in CS--but you can't say the same about a knife vs. surgery. Capisch?

Re: The Essence of Programming (2021)

#62
post #27

The essence of programming is designing a way to transform data. You ask yourself, "what is the nature input data and how it arrives" "what is the nature of the desired output data." When I started learning programming from books, the internet and later formal study this wasn't stressed nearly enough. A program transforms data. So much else starts falling into place about all the various abstraction techniques useful…

Author of the article here: I completely agree that the essence of a "program" is transforming data. In my previous article which I linked to in the main article, I specifically state "The purpose of a program is, and ought to be, something that transforms data into other forms of data". But the essence of "programming" is different, and I stand by statement that "Programming is a tool to solve problems that you have…

I've argued for a long time that everything in programming comes down to:

1. Data. It can be in many different forms and structures, more or less strictly typed, and a big part of writing a program is determining what it looks like, and what it should look like.

2. Procedures to work on that data. They can transform the data, remove it, reshape it, convert it, or do any number of other operations on it, simple or complex.

That's all there is to programming.

Re: The Essence of Programming (2021)

#63
post #42

Any claimed "essence of programming" has as much validity as an "essence of art". It is each generation's responsibility to overturn their spiritual parents' essence and invent a new one. Of course nothing is lost, and we are all richer for the adoption of new ways of seeing and thinking. The experience of the '90s and the then insistence on primacy of "paradigms" should stand as a red warning to us all. Programming…

Anytime you are learning new X on a regular basis, X is (by definition: these have been technical terms for ~2.5 millennia already) "accident", not "essence".

Re: The Essence of Programming (2021)

#64

I don't think programmers, let alone beginners, worry that much about the best way to solve a problem. Usually they are struggling with any way to solve it at all. You may get the impression from reading some online Q&A sites that everyone wants "the best" solution because of the way a lot of questions get asked. But in fact, phrases like "a good way" or "the best way" are more often than not purely rhetorical device…

Author of the article here: All I ever get from beginners are questions about the "best tool" by which they usually mean "a set of rules and procedures so that I don't have to think about the problem". > The person is trying to ask the question in a way which suggests that he or she does know how to solve the problem in ways that are not so great, and is just looking for a better way. It's pretty much always the exac…

> the questions asked are usually in the form of an XY problem

My usual approach to an XY problem is to treat it as an AZ problem, asking myself if there are any Ms for which I think I might be able to solve AM or MZ ... but it just occurred to me that this process may not be as intuitively obvious for anyone who has grown up with GPS navigation!

Re: The Essence of Programming (2021)

#65

Earlier quoted context omitted.

> A person so deeply involved in CS and not having a computer??? I looked for a reference just now and couldn't find one. This mentions it: > Dijkstra was famous for his general rejection of personal computers. Instead of typing papers out using a word processor, he printed everything in longhand. https://www.mentalfloss.com/article/49520/retrobituaries-eds... > That's like saying being an expert cook but not wanting…

People don't do computer science for the mere theory of it. In the end, CS should yield utility--solve problems in the real world and those problems are solved through the medium of computers. There is a reason it is called COMPUTER science while astronomy is not "telescope science". The analogy is faulty as well: >> "Computer science is no more about computers than astronomy is about telescopes": You can't compare a…

> People don't do computer science for the mere theory of it.

Are you sure? If I were to pick any arbitrary computer scientist (even stipulating it won't be EWD himself, this would still be "demonic choice", from your point of view), are you prepared to argue that whomever I pick does/did not do cs for the "mere" theory?

Exercise N: Was Euclid's GCD doing computer science?

Exercise S: Is watching TikTok doing computer science?

Hint: Gurfr dhrfgvbaf ner zrnag gb vyyhfgengr gur fhssvpvrapl naq/be arprffvgl bs pbzchgref gb qbvat pbzchgre fpvrapr.

Re: The Essence of Programming (2021)

#66

Earlier quoted context omitted.

People don't do computer science for the mere theory of it. In the end, CS should yield utility--solve problems in the real world and those problems are solved through the medium of computers. There is a reason it is called COMPUTER science while astronomy is not "telescope science". The analogy is faulty as well: >> "Computer science is no more about computers than astronomy is about telescopes": You can't compare a…

> People don't do computer science for the mere theory of it. Are you sure? If I were to pick any arbitrary computer scientist (even stipulating it won't be EWD himself, this would still be "demonic choice", from your point of view), are you prepared to argue that whomever I pick does/did not do cs for the "mere" theory? Exercise N: Was Euclid's GCD doing computer science? Exercise S: Is watching TikTok doing compute…

Yes, very very sure, but let me clarify.

When I say "don't, I mean "should not", but if they do, hey, that is what pedantry is for isn't it?

Exercise Q: Is doing theory for the sake of theory not ultimately about better theories that, in the end, should always yield utility in the real, applied world of computers solving hard problems?

Answer N & S: Yes, in a way, but it still, ultimately has sth to do with computers. Re TikTok I am not sure how you classify "watching". It can have something to do with CS and therefore computers in the sense that the original Tiktok source-code is written ON A COMPUTER--and when users watch Tiktok, the real data is analyzed ON A COMPUTER.

Re: The Essence of Programming (2021)

#67

Earlier quoted context omitted.

> A person so deeply involved in CS and not having a computer??? I looked for a reference just now and couldn't find one. This mentions it: > Dijkstra was famous for his general rejection of personal computers. Instead of typing papers out using a word processor, he printed everything in longhand. https://www.mentalfloss.com/article/49520/retrobituaries-eds... > That's like saying being an expert cook but not wanting…

People don't do computer science for the mere theory of it. In the end, CS should yield utility--solve problems in the real world and those problems are solved through the medium of computers. There is a reason it is called COMPUTER science while astronomy is not "telescope science". The analogy is faulty as well: >> "Computer science is no more about computers than astronomy is about telescopes": You can't compare a…

First of all, you're a brave man going after Dijkstra. Even two decades in the ground he's still going to win this argument.

The domain of astronomy is the starry sky and the Universe it reveals. The domain of surgery is anatomy, physiology, metabolism. In Informatics (not everyone calls it "Computer science", eh?) the domain is formal systems.

In each case the instruments (telescope, scalpel, digital computer) are not the main focus of investigation, they are tools, not the domain of study.

> the computer is the central figure

This is precisely the misunderstanding that Dijkstra tilted against.

> can you think of ANY other tool that represents CS?

Yes. The human brain.

I'll leave you with another joke, one of my favorite, although I don't know who said it, "Computer science could be called the post-Turing decline in the study of formal systems."

Re: The Essence of Programming (2021)

#68

Earlier quoted context omitted.

> A person so deeply involved in CS and not having a computer??? I looked for a reference just now and couldn't find one. This mentions it: > Dijkstra was famous for his general rejection of personal computers. Instead of typing papers out using a word processor, he printed everything in longhand. https://www.mentalfloss.com/article/49520/retrobituaries-eds... > That's like saying being an expert cook but not wanting…

I don't think you can do astronomy without telescopes: they are the basic ingredient. :)

I don't mean to be lame, I see your smiley, but c'mon, it's like you're not even trying... People were doing astronomy before the invention of the telescope.

And historically most of what we call computer science was developed before the advent of the computer. Turing, Church, Boole, Quine, Haskell Curry, etc. Wittgenstein, Russell & Whitehead (Principia Mathematica), etc. I could list names all day, none of whom used a mechanical computer.

Re: The Essence of Programming (2021)

#69

Earlier quoted context omitted.

People don't do computer science for the mere theory of it. In the end, CS should yield utility--solve problems in the real world and those problems are solved through the medium of computers. There is a reason it is called COMPUTER science while astronomy is not "telescope science". The analogy is faulty as well: >> "Computer science is no more about computers than astronomy is about telescopes": You can't compare a…

First of all, you're a brave man going after Dijkstra. Even two decades in the ground he's still going to win this argument. The domain of astronomy is the starry sky and the Universe it reveals. The domain of surgery is anatomy, physiology, metabolism. In Informatics (not everyone calls it "Computer science", eh?) the domain is formal systems . In each case the instruments (telescope, scalpel, digital computer) are…

Considering how it were the Greeks that prevented Calculus from being discovered for 2000+ years, I would rather err on the side of Descartes and Leibnitz and still ask questions like these.

I think you mistake my using the term "computer" for the machine that everybody is using nowadays--but that is just an instance of the Class of computers. The ultimate goal of formal systems is making better Class of computers that should solve real-world problems more efficiently (any other formal systems digression into logic and linguistics always boomerangs back to machines).

Consider how Bayesian probability was looked down upon for decades before computers became powerful enough to reveal how the academic world was wrong about dismissing it--big names from the Frequentist school, just like EDK is in CS....

Even if you still disagree--which you will--there is no denying the fact that not using technology when you ARE an expert in the said technologies is rather odd, and perhaps a bit silly. Have you seen astronomers shunning mathematics? Math is a tool that simplifies a great deal of issues not ordinarily possible with a "naked" mind. So does the computer (as an instance of the computer Class); that someone did not even want to use a typewriter let alone a computer is bewildering to me.

Post reply on HN