W3C home > Mailing lists > Public > www-tag@w3.org > April 2009

Flame on language versioning and multiplexing

From: Jonathan Rees <jar@creativecommons.org>
Date: Thu, 16 Apr 2009 15:34:05 -0400
Message-Id: <F26D9DCE-2BFB-40CA-8550-4C3B63B52BF4@creativecommons.org>
To: "www-tag@w3.org WG" <www-tag@w3.org>
Here is a message that I sent to Larry Masinter and a few
others about a month ago, with the following apology attached:
"I don't know whether this flame might be of general interest, so I
hereby send it only to friends first to vet. I don't want to step into
this hornet's nest without encouragement."

In response, Larry said:

"I think this level of analysis is really valuable and I'd
encourage you to publish it. If we can come up with a clear
and open analysis of extensibility mechanisms for already
deployed languages (such as HTML of course but applicable
to other systems), I think it would be valuable to existing
controversy but also of lasting value."

On today's TAG call, Larry gave me additional encouragement,
so here is the flame, edited slightly. Be nice please - this is
work in progress.


You may have seen my contribution to this discussion...


usually referred to as "Jonathan's versioning formalism".

In order to have the potential to help straighten out confusions like
the present one, this formalism ought to be modified to account for
differential payoff to sender and receiver. Then we can talk about the
situation where a sender sends a message containing parts that are not
understood by the receiver, and distinguish between points in
sender/receiver payoff space with good (positive payoff), punishing
(negative payoff), or neutral (zero payoff) coordinates along the
sender/receiver axes. The payoff to the sender will shape the sender's
behavior, and the payoff to the receiver will shape the receiver's

The payoff to the sender depends on what the receiver
does (unless communicating just "feels good" or is required by law),
but will often be indirect. E.g. in advertising,
it's not the payoff from any particular transaction that matters, but  
amortized payoff from many transactions.

When a message is broadcast to multiple audiences with different  
capacities, it
matters a lot whether the sender knows that this is the case. Creators
of good children's TV shows (which I hereby define to be the ones I
like to watch) know that there are two audiences and craft their
material so that both appreciate the content. Creators of bad ones
don't and only aim for one audience. But including material
meant only for grownups (positive receiver 2 payoff), perhaps disguised
or deemphasized so as not to make those who don't understand anxious
(negative receiver 1 payoff), is, to me at least,
the essence of craft and quality.

We have the same situation with content creators who only test against
a single browser, and consider any part of the content a failure that
doesn't create benefit for users of that browser. This contrasts with
standards-aware content creators, who will use a spec to predict
the outcome of interacting with browsers of unknown but spec-following
nature, and content creators who exercise "craft" or "good
practice", providing content that combines parts suitable for a
variety of audiences - those speaking multiple languages, those with
disabilities, those possessing RDFa clients. Those exercising craft
have a more difficult job in creation and testing - they have to think
- and this extra effort will only be made if the perceived benefit
outweighs the cost.

In a sense material that is knowingly destined for different audiences
constitutes multiple communications channels, and the question
of server/client compatibility (payoff) might
be better thought of not as a language extensibility problem but a
multiplexing problem. That is, if in-line language extensibility
(think: child-inaccessible puns) is outlawed, the new material will be
communicated *somehow*. (This is similar to the rewrite-based
extensibility question in
programming languages. Macros happen whether a language spec
supports them or not; it's just a question of how extensibility
will be managed - forking new languages (think: content-types), external
preprocessors, or in-language macro facilities.)

It's not clear what purpose version markers in HTML, indicating the
presence of stuff not understood by some clients, should have for
clients that don't understand that stuff. I guess it could lead to  
your browser" or "get this plugin" dialogs, or "save this file or
choose application", the payoff of which is the ultimate benefit minus
the annoyance of having to deal with the dialog. But in some cases
knowing that you don't understand will only lead to receiver anxiety.
Suppose I go to Peru and am spoken to in  Spanish, which I don't
understand. How can I tell how important what's being said should be to
me? Sometimes very, sometimes not; sometimes I can tell whether
it has must-understand status, sometimes I can't; in the latter case I
only have anxiety (perhaps a lot, if it's an armed soldier who's
speaking) and in a sense I might prefer to have heard nothing, like the
child who happily doesn't know that an adult pun has just flown past
in their TV show.

Received on Thursday, 16 April 2009 19:34:44 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:33:01 UTC