From mboxrd@z Thu Jan 1 00:00:00 1970 From: lm@mcvoy.com (Larry McVoy) Date: Sat, 6 May 2017 07:40:11 -0700 Subject: [TUHS] Discuss of style and design of computer programs from a user stand point In-Reply-To: <20170506091857.GE12539@yeono.kjorling.se> References: <201705060202.v4622L1J013430@coolidge.cs.Dartmouth.EDU> <5a2d6cc957c2efcd968f35aa5557c7a0e309dd27@webmail.yaccman.com> <20170506091857.GE12539@yeono.kjorling.se> Message-ID: <20170506144011.GF28787@mcvoy.com> On Sat, May 06, 2017 at 09:18:57AM +0000, Michael Kj??rling wrote: > On 5 May 2017 22:33 -0700, from scj at yaccman.com (Steve Johnson): > > For me, a lot of what > > I learned was from Stan Brown at the Labs, who read piles of my > > (atrocious) FORTRAN code and repeatedly pointed out that when you > > wrote a program, you were not just communicating with the computer, > > but also other humans (including yourself) who would read (and perhaps > > modify) the code in the future... > > I would actually take that one step further: When you are writing > code, you are _first and foremost_ communicating with whatever human > will need to read or modify the code later. That human might be you, a > colleague, or the violent psychopath who knows both where you live and > where your little kids go to school (might as well be you). When I run engineering teams the point I make is if you wrote the code more than 6 months ago it might as well be someone else's code. So write it in a way that someone else can debug / extend it. I also made the point that "clever" sucks. At least most of the time. All "clever" means is "hard to understand". The brief joy one gets from clever code is stomped on by the frustration one gets from having to fix it. When they wouldn't listen to that I'd say "I'm the dumbest guy here, right? And I'm the boss. And I debug could. The path to a big bonus does not go through clever code". That seemed to work. Personally, I find code that is clean, straightforward, obvious to be beautiful. The clever stuff usually strikes an odd note, not a good one. --lm