From mboxrd@z Thu Jan 1 00:00:00 1970 From: torek@torek.net (Chris Torek) Date: Fri, 15 Sep 2017 12:10:18 -0700 Subject: [TUHS] really Pottering vs UNIX In-Reply-To: Your message of "Thu, 14 Sep 2017 22:42:55 -0700." Message-ID: <201709151910.v8FJAIuv025809@elf.torek.net> >... He made the point that a good program never dies, and many >people will read it and modify it and try to understand it, and >it's almost a professional duty to make sure that you >make this as easy as possible for them.   This is true of many good programs. On the other hand, many programs are not good programs. And it winds up being true of many bad programs too. :-) >Maybe a guild is a bit too stuffy, but being mentored by someone >with their head screwed on straight, and consequently making a >point to seek out excellent examples of the programming art and >learn from them had a profound effect on my skill as a programmer >and my career. >I don't think I would have found this in a book or long midnight >hours hacking away... I'm not so sure: I learned some of this myself when working on my Z80 assembler written in (some Microsoft variant of) BASIC. Because it was such a terrible language, I had to keep a master "notes" table giving each subroutine's line numbers, input variables, and output variables (no call-by-anything in BASIC so I had to stuff a register name like "BC" "DE" "HL" "IX" "IY" into one global variable, "GOSUB 10100", and take the result back in more global variables). Nonetheless, it's true that seeing / recognizing "good" vs "bad" software is a valuable pattern matching skill. As with all such things, the best trick I've ever discovered is not just to learn from my own mistakes, but to learn from *other people*'s mistakes too! Chris