On Wed, 1 Aug 2001, Dekel Tsur wrote:

> Let's look at the two reason why you added the language_inherit

Juergen, I actually agreed with Dekel in this case.

Let me try to explain why:

Font, font size, italic, bold, color. These are all ortogonal
properties of text: You can change them without changing the text,
and you can change the text without changing the style.

Now, language is not an ortogonal properties of text. Instead,
it's a coupled property. You can not logically change the language 
of the text without changing the text itself, and vice versa.

The inherit attribute is used to compress information to make it
easier to change things: We record the *difference* to the hosting
environment. This allows us to change the global properties at the
top level, and it will automatically propagate to the children,
except where it's overrided. 
When we copy & paste text from a document with one text size into a
different document of another size, we want to keep the emphasize
attributes, but not the old size.
Therefore, inherit is good for ortogonal properties. It makes
life easier, because we have separated concerns.

However, we don't need this adaption to the environment for language. We
want language to stick!

Language is tightly coupled with the specific text, and therefore
it does not make sense to separate it, just to make it the same as the
rest. It's not the same. It's different. It's ok to reflect this
difference in the code, even if involves a special case.

I understand you might have had good reasons to change it. You've
mentioned that the old code did not work. Well, that might be the
case, but I can't read your mind yet. What was wrong with the old
code? Maybe we can find a different solution where language is still
sticky. Maybe we can not, and will conclude that the best solution
is to use inherit. But we should at least know why, before we 
accept this solution and fix it up to work correctly. Dekel reproted
that copy&paste is currently broken, so something should be done.

Greets,

Asger

Reply via email to