Greetings, readers of Pragmatic Curiosity.
Thank you for opening this newsletter, sharing it with your friends and engaging with it through restacks and likes. This truly goes a long way towards helping the publication.
Summary
🧠✍️ Get your thoughts on paper: writing your thoughts helps to crystallize your opinions.
🧘💪 Don’t be afraid to be independent: form your own opinions rather than letting others form them for you.
🙅💭 You don’t need to explain everything: a lot of the time people get defensive and feel a need to explain something - but neither explanation nor apology is a necessity.
"Do only what only you can do". - Edsger W. Dijkstra
Computer science as a field is filled with characters.
Some of the early pioneers, geniuses the likes of which neither I nor most of us will ever get close to, can be quite… peculiar.
Richard Stallman, an activist for free and open-source software, took off his shoes and socks during a lecture while fielding questions, picked something off his bare foot and put it in his mouth. While continuing to answer questions.
John McAfee wrote the first commercial anti-virus software. He went on to become a fugitive in Belize wanted for murder, believing he was being hunted by national armies, facing extradition for tax evasion, and running for president twice in 2016 and 2020.
Peculiarities abound. One such peculiar man was Edsger W. Dijkstra, a name most computer science students stumble upon.
Dijkstra, Programmer & Writer
Dijkstra was a Dutch computer scientist.
Initially studying mathematics and physics, he went on to become the first “programmer” in the Netherlands in 19521. In fact, when Dijkstra married in 1957, the municipal authorities did not accept it. Dutch marriage required profession to be stated — and “programmer” was not acceptable, as there was no such profession.
In 1959 Dijkstra started writing. He wrote a numbered series of reports, named using his initials (EWD) as a prefix and an incrementing number. He went on to write 1,318 EWDs.
The subjects of his EWDs were vast. Research papers, mathematical proofs, comments on other work. He blended thinking and writing into one activity.
Dijkstra received a Turing Award for his contributions in 1972.
“The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.” - Edsger W. Dijkstra
Dijsktra’s algorithm
The name Dijkstra is usually closely followed by the word algorithm — his most well known contribution.
Let’s say you want to go from your hometown to another town. To get there, you can make connections in several cities. We can make a graph of the cities you might visit to visualize the problem, and include the time it takes to reach each destination:
Dijkstra’s algorithm, conceived in 1956, finds the shortest path from one city to all other cities in the graph. This algorithm became the foundation for many technologies you’re likely to have interacted with today. If your internal compass is as bad as mine, that is.
Dijkstra’s arrogance
While Dijkstra certainly contributed to his field in ways few are ever able to, he had a reputation for being a bit of an ass.
“I don't know how many of you have ever met Dijkstra, but you probably know that arrogance in computer science is measured in nano-Dijkstras.” - Alan Kay
He had unconventional opinions, and did not shy away from controversies. He was a staunch believer that programming should be based on sound mathematical foundations, and that the way it was taught was wrong.
His core, controversial belief was that programming should be a branch of mathematics.
Programs should be composed provably correct, not debugged into correctness after creation. He viewed the development of a correct program as the development of a mathematical proof, and was intensely passionate about presentation and use of notation.
“Move fast and break things” - Mark Zuckerberg
The Facebook motto should indicate that this way of thinking has not become the dominant way to produce software. Software is shipped quickly, and bugs are fixed later (if ever).
Dijkstra was also critical of object-oriented programming - a method of programming that has become largely dominant, and his way of articulating this disapproval often led to negative reactions.
Dijkstra’s independence
Ironically, Dijkstra did not opt for the shortest path.
He preferred not to follow a textbook when teaching2, and, perhaps the most peculiar behavior of his, was his independence in research. He found it difficult to browse articles in his field, seeming uninterested in studying relevant litterature3. Because of this he only followed recommendations from close colleagues.
For this reason, much of his work was lacking in bibliographic entries, containing only a few or none at all — certainly not the way most are taught to write scientific papers. Many considered his opinions extreme. Even so, Dijkstra steadfastly held onto them, never swayed by the comments of others.
In his book A Discipline of Programming, he includes the following disclaimer in the preface:
“For the absence of a bibliography I offer neither explanation nor apology” - Edsger W.
Dijkstra
This fierce independence, to the point of foolhardy stubbornness, and complete belief in one’s own opinions and conclusions is inspiring. It’s what self-learners need to succeed.
The world lacks this type of thinking.
Too many today regurgitate what they hear, and assimilate other opinions as their own. This guy made a YouTube video saying this thing is bad, so I believe it is bad! This approach is widely used, clearly it’s the best, and you’re stupid if you think anything else!
Okay. But what do YOU think?
There’s not enough questioning today.
Not enough thinking being applied to defining your own opinions. Most would do well to adopt a writing habit similar to Dijkstra’s EWDs. Get your thoughts on paper, organize them and search for your own conclusions and opinions.
Put some effort into defining your own beliefs, and take charge of your learning.
In a world that cares too much about what the next person has to say, most would do well to be more like Dijkstra.
You don’t need to offer neither explanation nor apology.
Faulkner, Larry R.; Durbin, John R. (19 August 2013). "In Memoriam: Edsger Wybe Dijkstra" (PDF)
Same as 1.
Apt, K. R. (2022). Edsger Dijkstra, The Man Who Carried Computer Science on His Shoulders. In Edsger Wybe Dijkstra: His Life, Work, and Legacy (pp. 373-398).