Hacker News new | past | comments | ask | show | jobs | submit login
Dijkstra Archive (1930-2002) (utexas.edu)
50 points by tosh on June 27, 2019 | hide | past | favorite | 9 comments



A brilliant mind. His thoughts and ideas are extremely relevant to this day. In his letter 1304, Dijkstra said: “I would therefore like to posit that computing's central challenge, viz. "How not to make a mess of it", has not been met. On the contrary, most of our systems are much more complicated than can be considered healthy, and are too messy and chaotic to be used in comfort and confidence. The average customer of the computing industry has been served so poorly that he expects his system to crash all the time, and we witness a massive worldwide distribution of bug-ridden software for which we should be deeply ashamed.”


Over the course of a year I perused virtually all of the English language EWDs and read many in depth. They are extremely interesting. I especially like watching him develop his notation as he learns.

I also find the ones that are basically rants extremely entertaining. Others may not, but that's fine, skip them then.

And some are a mix, this one being a must-read: https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD103...


I find I appreciate EWDs even more in their original, handwritten form: https://www.cs.utexas.edu/~EWD/ewd10xx/EWD1036.PDF


That's remarkable and unique penmanship.


I am a huge Dijkstra fanboy, but even he occasionally had lapses of judgement. E.g. he panned Dr. Margaret Hamilton's "Higher Order Software"[1] which I feel is a major innovation in developing correct software[3]. Using a HOS system normal people developed correct software rapidly. The system makes it impossible to create incorrect code. (Long story short: if you're typing text into an editor to make hopefully correct software you're doing it wrong. We're still playing catch-up decades later.)

Hamilton is the person who coined the term "software engineering"[2]

[1] 'Judging “HOS” from a distance' https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/E...

[2] https://en.wikipedia.org/wiki/Margaret_Hamilton_(scientist) Wikipedia reads 'She is one of the people credited with coining the term "software engineering".' but doesn't link to anything referencing earlier uses of the term. Whatever.

[3] "System Design from Provably Correct Constructs: The Beginnings of True Software Engineering" by James Martin https://www.goodreads.com/book/show/3575584-system-design-fr... https://archive.org/details/systemdesignfrom00mart Irritatingly enough, he is presenting Hamilton's work without mentioning her (expect of a few references in the back) but whatever.


What's the modern successor to hos?


Short answer: nothing. (Even Bret Victor's work doesn't begin to touch it. http://worrydream.com/ Although he is well cool along other dimensions!)

For the flavor, imagine a type-safe LISP that one edits though something like Brad Templeton's Alice Pascal https://www.templetons.com/brad/alice.html or Emacs ParEdit https://www.emacswiki.org/emacs/ParEdit so that an incorrect program cannot be described in the system. (You can make a program that doesn't do what you intended, but whatever it does it will do so correctly.)

For the underlying technology, I would recommend reading up on Conal Elliott's "Compiling to categories" http://conal.net/papers/compiling-to-categories/ The connection won't be immediately clear. The connective is the Joy programming language:

https://www.latrobe.edu.au/humanities/research/research-proj...

https://en.wikipedia.org/wiki/Joy_(programming_language)

http://www.kevinalbrecht.com/code/joy-mirror/joy.html

http://joypy.osdn.io/ (full disclosure: this last one is my own project.)

The key is to see Joy (as opposed to, say, LISP) as the sort-of-AST that HOS is manipulating. If you restrict Joy to its type-safe subset and squint a little you have HOS. Then as a kind of bonus, Joy code turns out to be perfect for the "Compiling to categories" stuff (which is beyond HOS.)

For the UI, AFAIK Jonathan Edwards' Subtext http://www.subtext-lang.org/ is the closest anyone's gotten.


Can someone point to any specimens of source code in this archive?





Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: