I'm genuinely starting to wonder if programmers are afraid (or not incentivized) to write "plain" looking code.

I look at a lot of Python examples these days and the main thing going through my mind is "wow, that thing you just wrote is like exactly the opposite of everything that initially attracted me to Python."

@dabeaz I wonder what the world would look like if every PEP had to include a section explaining how people would debug the new feature when it went wrong and/or every implementation of a PEP had to include an upgrade to debugging tools to help people. *cough* decorators *cough*

@gvwilson @dabeaz

I'd love to see debuggability become a design criterion. Not just for languages, but for software systems in general.

@khinsen @gvwilson I find it interesting just how little coverage is given to such matters in general.

Specific example: How to generate good compiler error messages. I'm not aware of any compilers book that talks about this at all. Yet, it's a wickedly hard problem if you actually start digging into the details of it.

@dabeaz @khinsen @gvwilson I found a compilers book from 1970 or so that talked about it. Does that count? (-:
@shriramk @khinsen @gvwilson What book is that? I'd be interested.
@dabeaz @shriramk @khinsen @gvwilson That book isn't by Gries is it?
IIRC, P.J. Brown's _Writing Interactive Compilers and Interpreters_ had something to say about this (I might even have that book somewhere in my bookshelf ...); I see that he wrote an article about messages https://onlinelibrary.wiley.com/doi/epdf/10.1002/spe.4380120110 but it's paywalled. And I found a survey article that mentions Brown: https://web.eecs.umich.edu/~akamil/papers/iticse19.pdf
@PeterLudemann @dabeaz @khinsen @gvwilson I think these are correct. I found a copy in the basement at Dagstuhl. It only had a page or two. I seem to remember posting a photo somewhere, but can't find it (with the searches I tried) on Twitter, so maybe I posted it elsewhere… Sigh.
@shriramk @dabeaz @khinsen @gvwilson The Gries book had one of the best descriptions of the IBM S/360 object format, which (except for the 8 byte limit on names) was pretty good for the time; and the MTS OS even used the same object format for executables (after some processing to combine individual object files and minimize fixups when loading). Building a linking loader was one the projects for my 4th year systems programming course.
@shriramk @dabeaz @khinsen @gvwilson And now I'm wondering whether to attempt to fix a Wikipedia page that's worse than IBM's original documentation (which explained only the "what" and not the "why" or "how", which Gries did superbly). But first I need to find that book, if I still have it; it had a blue hardcover as I recall.