Live data from Hacker News

Vigorous Public Debates in Academic Computer Science

blog.regehr.org

21–30 of 38 posts

Re: Vigorous Public Debates in Academic Computer Science

#21

One debate that I thought would be mentioned is "Goto statement considered harmful", "'GOTO Considered Harmful' Considered Harmful.", and "GOTO Considered Harmful" Considered Harmful' Considered Harmful?" I think it's somewhat disappointing that a lot of CS education always mentions Dijkstra's original argument, but not the other side. The latter two can be found here: http://web.archive.org/web/20090320002214/http:/…

That's because the original Dijkstra argument was part of a research line that created structured programming. The essay (and the other papers) has really nothing against the usage on that your first link. The real problem was goto into loops or subs, not out of them, and not as switch statements. Current languages mostly don't even allow the bad kinds anymore, so people can ignore history, and complain that "goto is…

It's curious how unempirical these debates are.

The empirical approach would be to compare outcomes of different approaches, trying to control the independent variables.

But CS instead seems to be run by polemic, "Well, obviously..." rhetoric, and tribal affiliation.

I've yet to be convinced this is the ideal way to improve the tools and techniques of CS.

Re: Vigorous Public Debates in Academic Computer Science

#22

One debate that I thought would be mentioned is "Goto statement considered harmful", "'GOTO Considered Harmful' Considered Harmful.", and "GOTO Considered Harmful" Considered Harmful' Considered Harmful?" I think it's somewhat disappointing that a lot of CS education always mentions Dijkstra's original argument, but not the other side. The latter two can be found here: http://web.archive.org/web/20090320002214/http:/…

And of course the last one in the sequence is "Goto Considered Harmful Considered Harmful Considered Harmful". Yet another illustration of Ultrafinite Recursion!

(https://m.facebook.com/story.php?story_fbid=1015411943840422...)

Re: Vigorous Public Debates in Academic Computer Science

#23

One debate that I thought would be mentioned is "Goto statement considered harmful", "'GOTO Considered Harmful' Considered Harmful.", and "GOTO Considered Harmful" Considered Harmful' Considered Harmful?" I think it's somewhat disappointing that a lot of CS education always mentions Dijkstra's original argument, but not the other side. The latter two can be found here: http://web.archive.org/web/20090320002214/http:/…

That's because the original Dijkstra argument was part of a research line that created structured programming. The essay (and the other papers) has really nothing against the usage on that your first link. The real problem was goto into loops or subs, not out of them, and not as switch statements. Current languages mostly don't even allow the bad kinds anymore, so people can ignore history, and complain that "goto is…

If the bad kinds of `goto` aren't even allowed by compilers any more, then there is precious little to be gained by teaching youngesters that gotos are bad.

But we do teach them that. As a result I recently had to review changes made by a (very capable) junior colleague who failed to actually implement the desired feature, but did get so upset by the goto-based error handling that he replaced it with incorrect exception-based code.

Re: Vigorous Public Debates in Academic Computer Science

#24

Need a lot less rhetoric and a lot more controlled experiments.

We can't "control".

For example: someone in nineties-or-naughties once experimentally "proved" that Java was faster than C for matrix maths -- because of the overhead of `free()`! If that sounds ridiculous to you, then understand this really matters for certain implementations of certain matrix problems.

So the take-away hangs not on the nature of C vs. Java, but on whether the study matters in the real world. Emprics in CS are good for engineers quietly doing their own job, but for debates they are as fraught as in the soft-sciences.

Indeed CS is a soft-science. Or rather it is not a science at all, but a mathematical art, with bonus people issues.

Re: Vigorous Public Debates in Academic Computer Science

#25
post #20
post #19

To be fair, these are debates about issues that are rather insignificant from a broader CS perspective. Engineering problems (methodology, network protocols, file systems, kernel implementation details) or debates that are infamous mostly due to their polemic nature (Dijkstra-Backus, or Dijkstra-Anything, for that matter). I think it's true. In CS there are no deep fundamental or philosophical debate-evoking schisms…

Let's not forget about tabs v spaces though

I've come to personally settle that one. Spaces for python and tabs for everything else. (Shrugs)

Re: Vigorous Public Debates in Academic Computer Science

#26
post #7

Some of those are classics. The Lipton-Perlis-DeMillo argument against program verification is a good one.[1] They demonstrated that manual programming verification via hand theorem proving is buggy. Automated theorem proving was new back then. This was an issue back in the 80s for a philosophical reason in mathematics. Mathematics classically approves of short, clever, elegant proofs. The paper-and-pencil crowd was…

Far as prover verification, these people mostly solved it:

https://www.cs.utexas.edu/users/jared/milawa/Web/

They start with small logics you can do by hand in verified code. They gradually build on them, one layer at a time, increasingly sophisticated logics until they have a useful theorem prover in first-order logic. I also found a HOL-to-FOL converter. Since most of their stuff is HOL, that means we're almost done at that point for the verification chain.

Re: Vigorous Public Debates in Academic Computer Science

#27

Earlier quoted context omitted.

That's because the original Dijkstra argument was part of a research line that created structured programming. The essay (and the other papers) has really nothing against the usage on that your first link. The real problem was goto into loops or subs, not out of them, and not as switch statements. Current languages mostly don't even allow the bad kinds anymore, so people can ignore history, and complain that "goto is…

It's curious how unempirical these debates are. The empirical approach would be to compare outcomes of different approaches, trying to control the independent variables. But CS instead seems to be run by polemic, "Well, obviously..." rhetoric, and tribal affiliation. I've yet to be convinced this is the ideal way to improve the tools and techniques of CS.

http://dl.acm.org/citation.cfm?id=2851730

Re: Vigorous Public Debates in Academic Computer Science

#28

Earlier quoted context omitted.

That's because the original Dijkstra argument was part of a research line that created structured programming. The essay (and the other papers) has really nothing against the usage on that your first link. The real problem was goto into loops or subs, not out of them, and not as switch statements. Current languages mostly don't even allow the bad kinds anymore, so people can ignore history, and complain that "goto is…

It's curious how unempirical these debates are. The empirical approach would be to compare outcomes of different approaches, trying to control the independent variables. But CS instead seems to be run by polemic, "Well, obviously..." rhetoric, and tribal affiliation. I've yet to be convinced this is the ideal way to improve the tools and techniques of CS.

This is actually the main thing I like about Knuth. Things are either proven, in very strict terms, or they are empirically studied. Also typically in rigorous means.

People usually present his work in terms of proofs only. Typically with big O considerations. Reading him, he very quickly warns of the dangers in big O analysis. (He is still a fan of it. Encouraged it as a math aid for grade school work, at one point.)

Re: Vigorous Public Debates in Academic Computer Science

#30
post #28

Earlier quoted context omitted.

It's curious how unempirical these debates are. The empirical approach would be to compare outcomes of different approaches, trying to control the independent variables. But CS instead seems to be run by polemic, "Well, obviously..." rhetoric, and tribal affiliation. I've yet to be convinced this is the ideal way to improve the tools and techniques of CS.

This is actually the main thing I like about Knuth. Things are either proven, in very strict terms, or they are empirically studied. Also typically in rigorous means. People usually present his work in terms of proofs only. Typically with big O considerations. Reading him, he very quickly warns of the dangers in big O analysis. (He is still a fan of it. Encouraged it as a math aid for grade school work, at one point.…

> Encouraged it as a math aid for grade school work, at one point.

Do you have a link / some elaboration?

Post reply on HN