-----BEGIN PGP SIGNED MESSAGE-----
At 02:26 PM 5/8/99 -0700, EKR wrote:
>Carl Ellison <[EMAIL PROTECTED]> writes:
>> Source code is human speech, for human-to-human communication. It has a
>> side-effect of being compilable into machine code, but it is in a human
>> language and is intended for human communication.
>This strikes me as patently false.
Feel free to be struck that way, but you haven't shaken my conviction.
>If programmers though this way, they'd make an attempt to make their
>source code readable, but by and large they don't.
...and they suffer for that oversight, later. They suffer because while
they're programming they don't realize the purpose of the source code is not
merely getting pigs to dance on screen but equally to communicate to the
next human to read the code.
>Moreover, the
>code (especially C code) is littered with constructs which serve
>no communicative purpose but solely tell the computer what to do.
>(Memory management comes to mind as a prime example. The only
>purpose of calling free() is to release memory. It serves no
>expository purpose. This is clearly shown by the fact that
>garbage collected languages do without it.)
Of course the purpose of free() is to release computer, not human, memory.
The reason it's readable (an English word, in fact -- as opposed to
0xB548976A) is so you and I can read it, however.
The very fact that you used the construct
free()
in the middle of a sentence to me, I understood what you meant by it, and I
could reply in kind, also using that construct, shows that that construct is
an element of human-to-human communcation. No computer is going to execute
that paragraph you wrote. Of course, I'm not saying that there is no other
effect -- of getting pigs to dance on screen -- only that there is a
human-to-human communication happening here. The Bernstein argument is that
the human-to-human element of the communication deserves protection even if
the human-to-computer communication is deemed harmful to national security.
The former is more important than the latter.
>> Have you ever modified a program written by someone else? What's your
first
>> step? You read the program, to find out what it does. You don't read the
>> massive paper document that describes what the program does and how ..
>> because there is no such document. You don't read the comments in the code
>> .. because there are lamentably few comments. Therefore, you read the
>> source code.
>Because it's your only choice.
The ACM articles I cited in my submission to the Bernstein case used source
code as communication to humans, interspersed with text -- or sometimes
instead of text -- because the subject of the communication was programming
and source code was the most concise way to communicate the thought of
the author to the mind of the reader. That's all Bernstein was trying to do
with his source code postings. If all he wanted to do was let machines run
code, he could have asked to post executables. He didn't. He was posting
source code because of its human-to-human communicative value.
Those ACM articles, BTW, (the ones that were all code) were required to
compile and execute correctly, even though their declared intention was to
communicate from human-to-human.
>> My first system programming professor drove this point home
>> to us -- noting that even solitary projects require communication to some
>> "other" programmer: namely ourselves at a later date when we've forgotten
>> what was in our minds at the time we started writing the code.
>The very fact that you have to be taught this should make clear
>that the actual purpose of code is instructing machines, not people.
>People hardly ever forget that the purpose of writing text is
>communication.
People have to be taught how to write text. We're not born with the ability.
>> QED
>Hardly.
Nope, still QED.
- Carl
-----BEGIN PGP SIGNATURE-----
Version: PGP 6.5.1b15
iQCVAwUBNzUUkhN3Wx8QwqUtAQE2+wP9Go4W7oOc3rbgNwBdStUd8wSPdIBseNLs
zbCjGuZucEvpYE/ObgXGgn03BNcgSCi2G1Qpcjv4hQ11FgIbzknNAX0FC30PC/r+
L0xQLW5wUQqXJfuWiwsYou0XqsmpdxvapTpM1Wqpbdn9qlKaK9TWDLmVUQ7yRcc7
lgtaqEUdimg=
=97LH
-----END PGP SIGNATURE-----
+------------------------------------------------------------------+
|Carl M. Ellison [EMAIL PROTECTED] http://www.pobox.com/~cme |
| PGP: 08FF BA05 599B 49D2 23C6 6FFD 36BA D342 |
+--Officer, officer, arrest that man. He's whistling a dirty song.-+