RE: HTML extensibility framework

Anne,

Every example of a language extension contains
some means by which the appearance of a new feature
is written by a writer, and read and interpreted
by a reader.

Each language has a way of adding extensions.
You can add extensions to JavaScript and most
programming languages by fiddling with the
syntax and punctuation or adding new keywords
or by adding things that look like procedure
or function calls or attribute values or wahtever,
but these are still extensions.

There may not be any other kind of "version"
indicator formally -- you might not need someone
to tell you that "Yes, this program is really
written in FORTRAN 7.9", because you can tell
just by looking whether it uses any FORTRAN 7.9
features, but there is SOME way in which you
added those features other than telepathy.

I’m trying to list the ways in which new features
are added to languages; in HTML this has happened
usually by adding new elements, or adding comments,
or adding <Script> elements with new script types
or Javascript calls to new APIs. Perhaps there are
more ways in which HTML is or can be extended.

I just want to be clear about what the options are
and how they are being analyzed, what the considerations
are.

You raise some issues around deployment and backward
compatibility that I think were at least alluded
to on my list.

>  (I tend to think that languages that are incrementally improved upon by  
> multiple parties and are widely deployed are much better off without  
> versioning. Then again, everyone has different ideas as to what versioning  
> means. Some feel it's just a hint for the validator. Some think user  
> agents need different processing models. Etc.)

Clearly when you have a single speaker and multiple
recipients, and a single speech act, then the single
speaker needs to indicate the language more clearly
than in cases where the speaker adapts the content
of the message to the listener.

I'd like to see if we could move the conversation from
"I thend to think X" vs "I tend to think Y" to 

 Here are 5 choices: (A) (B) (C) (D) (E)
 Here are 7 use cases: (1) (2) (3) (4) (5) (6) (7)

and evaluating the choices against the use cases in
a consistent way.

Then, we can make a more informed decision of which
choice we're making by evaluating how important the
use cases are and what the impact is.

"everyone has different ideas as to what versioning means"

I've found discussions about "meaning" to be frustrating
when carried out without reference to the context of
use. That's why I try to distinguish between the indicator
(element, attribute, version designation, etc.) as
uttered by a speaker, vs the behavior of a recipient
when reading and trying to process the content that
contains this sign.

Larry
--
http://larry.masinter.net

Received on Wednesday, 18 March 2009 01:03:08 UTC