Hacker News new | ask | show | jobs
by brundolf 2078 days ago
Yeah. Much of this list simply comes off as arrogant and narrow-minded. Whether or not it was tongue-in-cheek, I don't know. This one in particular:

> It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

is at best a hyperbolic joke. I dearly hope he wasn't being serious.

2 comments

Dijkstra provides glimpses of his reasoning scattered across his missives. For example, for FORTRAN in https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340...

"The second major development on the software scene that I would like to mention is the birth of FORTRAN. At that time this was a project of great temerity and the people responsible for it deserve our great admiration. It would be absolutely unfair to blame them for shortcomings that only became apparent after a decade or so of extensive usage: groups with a successful look-ahead of ten years are quite rare! In retrospect we must rate FORTRAN as a successful coding technique, but with very few effective aids to conception, aids which are now so urgently needed that time has come to consider it out of date. The sooner we can forget that FORTRAN has ever existed, the better, for as a vehicle of thought it is no longer adequate: it wastes our brainpower, is too risky and therefore too expensive to use. FORTRAN’s tragic fate has been its wide acceptance, mentally chaining thousands and thousands of programmers to our past mistakes. I pray daily that more of my fellow-programmers may find the means of freeing themselves from the curse of compatibility."

I don't think any language that could ever be invented could be described as leaving programming students "mentally mutilated beyond hope of regeneration", no matter how bad it is. So either he was being hyperbolic (and the sarcasm was lost on me), or he was being shockingly dogmatic.

It's the kind of ranting you do with your colleagues in a pub after-hours, not something you publish in a professional context and frame as "unpleasant truths", as if they've been proven through scientific measurement.

Tenured professors, particularly of EWD's stature, get a lot of license to say what they want. I can certainly a few of my instructors who were rather colorful in a variety of ways.
I've no doubt they have license to do so without damaging their careers. That doesn't make it a good take.
Because it makes you uncomfortable? Or because you have reason to believe otherwise?
Because any subjective assertion this narrow is going to be some amount of wrong.
If you're used to exclusively programming with line numbers and you're a kid, sure, it might take a little bit of time and instruction to comprehend that line numbers aren't necessary. But from what he wrote it just sounds like this guy is whining about (when faced with students like this) having to actually do his job.
Fortran and BASIC at the time were, in many ways, the antithesis to his ideas of what a programming language should be.

They did not permit recursion (direct or indirect). Almost by design they encouraged spaghetti code (the thing Structured Programming was meant to work against). They encouraged (or required) global state. They discouraged modularity. They were effective languages (in the sense that people got stuff done in them), but they were poor languages when compared to the capabilities of their contemporaries.

I didn't have an impression that line numbers were important. Most of the time they did nothing and were unwieldy to maintain, they were more nuisance than anything else.
I disagree and I believe most developers would agree that it would have been a far better use of time to learn 6502 assembly than Apple BASIC, at least if one's goal was to actually learn how to program computers.

To this day if I saw 6502 assembly on a resume I'd be intrigued and if I saw BASIC I'd view it as a yellow flag.

Then you say "There are better options than BASIC for teaching new programmers." That's not what was written.

I've read countless anecdotes from perfectly capable programmers who not only learned, but first discovered their interest in the field, via BASIC. No language "mentally mutilates programmers beyond hope of regeneration". And BASIC probably isn't even the worst one for learning purposes.

He calls out BASIC specifically because it was ubiquitous and often the only option on the machines novices would have available at the time. It logically follows that most programmers of that era, capable or otherwise, started on BASIC. Since he’s not here to tell us, I can only assume Dijkstra met the occasional exceptional individual who began learning to program in a more mathematically rigorous language during that time and was left with a vastly more favorable impression.

Remember, Dijkstra was a professor and he was an expert on teaching programming. He would have far more experience with the effect he claims than I do. I hazard to guess that is true with respect to you too.

And yes he’s obviously engaging in rhetorical hyperbole in the text you quote.

> "He calls out BASIC specifically because it was ubiquitous and often the only option on the machines novices would have available at the time."

EWD's quote is from 1975 which is just barely the start of the microcomputer era (the Altair 8800 came out in '75 and the Apple II in '77), so he's not referring to those. Most people writing programs would have had access to mainframes and therefore had access to multiple language interpreters and compilers I would think.

The Altair 8800 came out in January 1975; Gates and Allen's Altair BASIC, the first microcomputer BASIC, came out "shortly thereafter" and EWD498 was written in June 1975. That's hardly long enough for an explosion. Again, Dijkstra probably had never even heard of either when he penned his missive and it's clear that his opinion of BASIC was well formed even before 1975.
People had to create specialized languages for learning purpose to compete with builtin graphics feature of basic.