in reply to Larry vs. Joel vs. Ovid

And I think that Joel is being insufficiently generous in what he accepts here.

What Larry stated is a commonsense and correct rule. A given program will be most effective in communicating if it is generous in what it accepts and strict in what it emits. You may prefer Netscape's breaking on certain constructs. But no matter what you prefer, it is a fact that Internet Explorer is better at communicating than Netscape is. Because it is more generous in what it accepts, and goes out of its way in what it emits to do things like work around broken browser version checks.

What you and Joel are saying is that communicating well is not always wanted! If I have barely learned another language, when I try to communicate I darned well want to deal with someone who will hear through my accent, mangled grammar, and know to point me to the bathroom now. If I am trying to learn how to be understood, I want that person to point out my mistakes, correct me, and be very strict in what they call acceptable.

So Larry is right. Browsers are great communicators. They bend over backwards to communicate. And that fact helped millions of novices, who are scared of their computers, to reach out and successfully communicate with each other. Had HTML been strict by default, I strongly doubt that that would have happened.

In so far as Joel is talking about something different than what Larry is, he is also right. Having all of these great communicating programs around has spoiled people. They succeed in communicating with the most popular browsers even though they are communicating really badly, and so have learned to be bad communicators. A world full of bad communicators is hard to understand.

But as long as Joel is talking about what Larry is, he is just plain and simply wrong. A program that refuses to implement simple workarounds for mistakes that you know are out there is worse at communicating. Period. There are cases where it fails to communicate, even though communication is demonstrably possible. Whether or not improving your program's ability to communicate leads to better communication is a different issue. There are tradeoffs both ways. And certainly if you are developing software, it is best to find out errors as quickly as possible. (Which is why I explicitly tell Perl with to not try to be generous in figuring out what I meant to say...)

And IMO criticizing Larry Wall for a point he didn't make is just plain unfair.

Replies are listed 'Best First'.
Re: Re (tilly) 1: Larry vs. Joel vs. Ovid
by Ovid (Cardinal) on Nov 21, 2001 at 04:03 UTC

    tilly wrote:

    And IMO criticizing Larry Wall for a point he didn't make is just plain unfair.

    Mea Culpa :( I realize now that the root post came across differently from my intentions. I think Larry has an excellent idea. I just don't think most people (and that includes myself) have the skill to implement it.

    I think, though, that your 'bathroom' analogy illustrates the difference between humans and computer (and demonstrates the breakdown of the analogy). A human is much better at interpreting meaning than a computer, but we still get things wrong. If I say "I want to hit the man with the shoe", technically, that means "There is a man with a shoe and I want to hit him." Many people, though, would incorrectly interpret this as "I have a shoe and I want to hit the man with it." That's what I mean when I think that people are often bad at liberally accepting input.

    Now, if I feed that same sentence in a computer that has algorithms to understand English grammar, it may parse the grammar correctly, but get my intent wrong if I really did mean that I have a shoe that I want to hit someone with. How can a computer determine intent if the sentence fits the grammatical rules but doesn't mean what I meant? The more liberal we get, the more we open the room for ambiguity. The more paths a program can take to get to a solution, the more paths there are for bugs.

    This is all about finding a good middle ground. That's tough to do.


    Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.