> I'm not arguing that it's not a worthwhile purpose for code to
> be readable (despite my personal opinion that it isn't very likely).
> I'm arguing that it's not it's primary purpose nor is it necessary
> to fulfill its primary purpose. The fact that the world is full
> of unreadable code that still runs proves this point quite
> handily, I think.
I think you guys are to some degree talking past each other. Eric
seems to be viewing software in a static sense ("I know an unreadable
program and it runs, so there"). Others may be seeing software
creation, maintenance, and obsolesence as a long-term engineering
process.
The viewpoint that source code communicates to humans makes more sense
when you notice that the people who maintain programs during their
mid-life are usually not the ones who wrote them originally.
My experience (of 25+ years programming) is that code dies if nobody
available can read, understand, and modify it. It gets left behind as
the whole industry evolves. It needs to get ported from DOS to Win
3.1 to Win95 to NT to whatever's next -- and nobody can do the job.
It keeps running with some known quirks in the old environment, but
never makes the leap to the new one. Yeah, you can run many DOS
programs under win98, but they are generally not commercially viable
any more as DOS programs.
The people who taught me systems programming in the 1970's did code
walk-thrus before any new code could enter the production time-sharing
system. Another programmer had to make the time to read your (370
assembler) code, convince themself that it would work, and negotiate
with the author until they were both happy with the code and its
comments. This meant that two people there could maintain the code.
And the places that confused the reader, or were wrong or unclear, had
been fixed before the author could consider the code "done". This
meant that after the author left, more people could be trained to
maintain the code. But these folks were in a long-term service
business, and actually cared whether the software ran as well tomorrow
as today.
John