On Mon, Jun 24, 2019 at 08:31:21PM -0400, Theodore Ts'o wrote:
On Mon, Jun 24, 2019 at 05:06:30PM -0700, Larry McVoy
wrote:
All interesting points but messy code is messy
code. I had a bunch of the
FreeBSD folks over here for a BBQ a couple days ago (they want you at the
next one Clem). We got to talking about Mach and someone told me that in
the FreeBSD tree the Mach code was gone through and 60% of was deleted and
it still worked. It just seems like the Mach folks wanted to try this,
and that, and then next thing and never went back to clean up the mess.
Welcome to academic/research code. :-)
Like I said, I can point anyone at code I wrote as a grad student that
while I'm not proud of the style, it has style and it is clean. Just
because you are a grad student that doesn't excuse messy code. If you
write messy code then you're a bad hire.
I'm reminded of a description of the Coda File
System by Peter Braam;
he said that it was irretrivably tainted by a dozen Ph.D. students
working on their thesis. Naturally, once they had done the necessary
work for them to get their doctorate, any interest in doing the
necessary code cleanup for their various experimental efforts
evaporated.
Yeah, like I said, bad hires. People who are good coders take pride
in their work. They put in the extra time to clean it up. That's
why SunOS 4.x was a nice code base, everyone pulled their weight
to make it be so. I get that that is unusual but it is super nice
when it happens.
And I wasn't trying to belittle the Mach effort, I'm impressed with
what it does. I am most definitely belittling the people who did it.
Not because of what they accomplished, that's cool, but they didn't care
enough to clean it up. That sucks. And that means they suck as
professional programmers.
I'm a canoe guy and any canoe guy knows that the ultimate insult is
"I wouldn't want him in my boat." Well, I wouldn't want the Mach
people, for all their talent and accomplishments, on my team. I
like people who get the job done, all the way done. Code is clean,
the docs cover the code, the test cases are there. Done done.
I just don't buy that academic/research code needs to be bad. If
the people doing it are people you'd want to hire, they get it
done done. I get that I'm describing a unicorn but I was one,
and I'm not that great. Doesn't seem so much to ask that people
give a shit and do it right.