←back to thread

Thomas E. Kurtz has died

(computerhistory.org)
614 points 1986 | 1 comments | | HN request time: 0.217s | source
Show context
smarks ◴[] No.42142776[source]
Like several others here, my first programming language was BASIC. For this we owe Kurtz a debt of gratitude.

I know Dijkstra is famous for having said that we're mentally mutilated beyond hope of regeneration, but you know, I kinda think we didn't turn out half bad.

replies(3): >>42142995 #>>42143386 #>>42144898 #
microtherion ◴[] No.42142995[source]
I know literally zero working programmers who learned programming the way Dijkstra thought it should be taught — not even Dijkstra himself, as Donald Knuth once gently pointed out.

Practically everybody in my generation started off with BASIC. On the other hand, at some point (when?), this practice stopped, and the newer generations turned out fine starting out with more civilized languages.

replies(2): >>42143247 #>>42145272 #
niteshpant ◴[] No.42143247[source]
Consider me naive, but what way did Dijkstra thought it should be taught? Someone who first learned to code in QBASIC
replies(5): >>42143332 #>>42143498 #>>42143818 #>>42143880 #>>42150516 #
schoen ◴[] No.42143880[source]
Other commenters are completely right to mention his concern for proofs and the "Cruelty of Really Teaching Computer Science", but the most BASIC-specific thing that he was associated with was criticism of the GOTO statement.

https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.p...

In original BASIC, the GOTO is a foundational mechanism and a majority of programs would have used it, sometimes extensively. Dijkstra thought for many reasons that this wasn't good style and didn't promote clear thinking. And yes, one consequence of that is that it would be harder to prove programs correct or just to reason about whether they were correct.

Programs that overuse GOTOs (or from the point of view of later structured programming and functional programming advocates, perhaps programs that use GOTOs at all) were stigmatized as "spaghetti code".

https://en.wikipedia.org/wiki/Spaghetti_code

By the way, this concern is not just about aesthetics: some of the ideas that Dijkstra was advocating are arguably those that newer programming languages like Haskell and Rust can use to find bugs in code automatically at compile-time, or to make it harder to write certain bugs at all. The line between Dijkstra's advocacy and these techniques is complicated but I think there is a connection. So partly we might say that Dijkstra was not just concerned with how to make it easier for humans to think clearly about program correctness, but ultimately also about how to make it easier for computers to help humans automatically determine (parts of) program correctness. And it's true that the GOTO style complicates that task.

replies(1): >>42146111 #
tinco ◴[] No.42146111[source]
Kind of ironic that nowadays many people in our generation consider the newer generations to be lacking fundamental education because they never used GOTO based programming languages. I've talked to multiple people who lamented that young programmers have never done assembly or BASIC.
replies(2): >>42146260 #>>42148015 #
shermantanktop ◴[] No.42148015[source]
Assembly? Sure, that has some educational value.

BASIC? That’s just nostalgia for poverty.

replies(1): >>42151515 #
1. leoc ◴[] No.42151515[source]
Not entirely. GOTO can be pretty nice! And even the lack of structs probably has the advantage of helping to prepare you for today's world where column-major is back in style, for performance reasons.