#Dijkstra #person
Dijkstra is one of the influential computing pioneer. Independent of his academical contributions, he wrote *a lot* of spicy takes 🥵🌶️. He would've been a prolific blogger or twitter influencer given his confrontational writing style.
I'm revisiting his thoughts from the 2020s perspective.
# Writings
## GO TO Considered Harmful
*1968*, [link](http://www.u.arizona.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful.html)
The article that sparked [[Structured Programming]] debate.
# [[The Humble Programmer]]
*1972*, [link](https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html), on programmer, programming, and [[Programming Languages]].
## How can we tell the truths that might hurt
*1975*, [link](https://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html)
This "paper" - really a list of hot takes - has many elements of the [[Programming Languages#As a Self-expression]]. It starts off with "The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities." and starts to insult every language out there - FORTRAN, PL/I, COBOL, APL, ... and of course, [[BASIC]].
> [!quote] On *[[BASIC]]*
> 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.
This also hints against the *anthropomorphic analogy*, which is explored further in subsequent writings.
## On the cruelty of really teaching computer science
*1988*, [link](https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html)
* Radical Novelty
* Requires a new way of thinking
* Against anthropomorphic analogies
* Computer Science Exceptionalism
* "He has to be able to think in terms of conceptual hierarchies that are much deeper than a single mind ever needed to face before"
* "automatic computer is our first large-scale digital device"
* On Computers
* "After all, it is no longer the purpose of programs to instruct our machines; these days, it is the purpose of machines to execute our programs."
> [!quote] On Computer Science Education
> Right from the beginning, and all through the course, we stress that the programmer's task is not just to write down a program, but that his ==main task is to give a formal proof that the program he proposes meets the equally formal functional specification==. While designing proofs and programs hand in hand, the student gets ample opportunity to perfect his manipulative agility with the predicate calculus. Finally, in order to drive home the message that this ==introductory programming course is primarily a course in formal mathematics==, we see to it that the programming language in question has not been implemented on campus so that students are protected from the temptation to test their programs. And this concludes the sketch of my proposal for an introductory programming course for freshmen.
Frequently quoted as "Students shouldn't even touch computers until they learn formal math" @ [[Coders at Work]].
# Computer Science as a sub-discipline of Mathematics
> [!quote]
> Computer Science Is Not About Computers, Any More Than Astronomy Is About Telescopes
> [!quote]
> The question of whether Machines Can Think (…) is about as relevant as the question of whether Submarines Can Swim
Related: [[Computer Science - Discrete or Continuous?]]