Carl Ellison <[EMAIL PROTECTED]> writes:

> -----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.
I didn't expect to. Convincing yourself does not mean that you have
a convincing argument, however.

> >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.
You're just asserting this again. The fact that people get paid for
making pigs dance and not primarily for making their code readable
suggests that the purpose of the exercise is to make the computer
do stuff, despite your assertion to the contrary.

> 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.
Yeah, so? This doesn't make it a form of human to human communication.

Look, computer languages look like English because it makes them
(1) easier to learn since you can coopt keywords the user already
knows.
(2) easier to read because they vaguely look like sentences.

For the same reason, many internet protocols are ASCII based
(e.g. SMTP) because occasionally someone has to read them. 
This doesn't mean that the most important purpose of SMTP traces
is to be read by humans. 

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.

> 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.
It can be used in that fashion. However, it's usually not the clearest
way to explain how software works. That's why people who distribute
software write documentation. I've worked on systems where you had
to reverse engineer how the system worked from the source code. I
didn't enjoy it. 

Moreover, when people use code to illustrate their point, they
usually strip out a lot of the housekeeping that's really necessary
to make software work. (Error handling, for instance. Memory management
is another example, as I pointed out previously.) 

>  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. 
You said "It has a side-effect of being compilable into machine code, but it is in a 
human 
language and is intended for human communication."

Being compilable is not a side effect. It is the PRIMARY purpose.
Software that doesn't compile isn't software. 

> People have to be taught how to write text.  We're not born with the ability.
Uh, yeah? What's your point?

> >> QED
> >Hardly.
> 
> Nope, still QED.
Blanket assertion is not a form of demonstration, Carl. 

-Ekr

-- 
[Eric Rescorla                                   [EMAIL PROTECTED]]

Reply via email to