On Wed, Mar 21, 2018 at 10:17 AM, Noel Chiappa <jnc(a)mercury.lcs.mit.edu>
wrote:
From: Larry
McVoy <lm(a)mcvoy.com>
Going forward, I wish that people tried to be
simple as they tackle
the
more complicated problems we have.
I have a couple of relevant quotations on my 'Some Computer-Related Lines'
page:
"Deliberate complexity is the mark of an amateur. Elegant simplicity is
the
mark of a master."
-- Unknown, quoted by Robert A. Crawford
"Fools ignore complexity. Pragmatists suffer it. Some can avoid it.
Geniuses
remove it."
-- Alan Perlis
"The most reliable components are the ones you leave out."
-- Gordon Bell
(For software, the latter needs to be read as 'The most bug-free lines of
code are the ones you leave out', of course.)
Amen...
I remember watching the people building the LISP machine, and thinking
'Wow,
that system is complex'. I eventually decided the problem was that they
were
_too_ smart. They could understand, and retain in their minds, all that
complexity.
And therein lies another interesting paradox... smart people don't always
realize that
their being "smarter than the average bear" as it were, means mortals are
unlikely to be able to understand what you are doing. Or more importantly,
your might not be that 'smart' later.
I'll never forget a conversation with one of my officemates at Masscomp who
had come from Steve Ward's group at MIT, who I will not name. But he is
one the smartest people I ever worked with and someone I have tremendous
respect. CMU used to have a required SW Engineering course and one of the
things drilled into us was commenting (you can usually tell code I worked
on by the dyslexia in my comments - but I do try to leave bit crumbs).
Anyway, said person never had a such a course. He says to me -- "Well I
only comment things I did not understand." I looked at him in awe and
said: "'Fred' - you are one of the smartest people I know, please put
the
comments in there for the rest of us."
A bit later, he got cut by his own sword. He had had to pick up a piece of
code he had written a long time before and of course the context that he
had had when he wrote it was by that time completely lost. Guess what - he
could not understand what the code was doing [BTW: The last time I saw
something he wrote, he was wonderful at writing comments].
To me, "keep it short, simple, but always explain your intentions in prose"
need to be the guiding lights for programmers.
Clem
ᐧ
ᐧ