Re: [I18ndir] I-D on filesystem I18N

Asmus Freytag <asmusf@ix.netcom.com> Wed, 08 July 2020 10:42 UTC

Return-Path: <asmusf@ix.netcom.com>
X-Original-To: i18ndir@ietfa.amsl.com
Delivered-To: i18ndir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1D3033A079D for <i18ndir@ietfa.amsl.com>; Wed, 8 Jul 2020 03:42:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.996
X-Spam-Level:
X-Spam-Status: No, score=-1.996 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=ix.netcom.com; domainkeys=pass (2048-bit key) header.from=asmusf@ix.netcom.com header.d=ix.netcom.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ftdQyjfTm9w6 for <i18ndir@ietfa.amsl.com>; Wed, 8 Jul 2020 03:42:02 -0700 (PDT)
Received: from elasmtp-dupuy.atl.sa.earthlink.net (elasmtp-dupuy.atl.sa.earthlink.net [209.86.89.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 461853A079C for <i18ndir@ietf.org>; Wed, 8 Jul 2020 03:42:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ix.netcom.com; s=dk12062016; t=1594204922; bh=xAga2P7ogx5sXSfgZHsL4rWQQKQpmpC/SIzn kgB+cFA=; h=Received:Subject:To:References:From:Message-ID:Date: User-Agent:MIME-Version:In-Reply-To:Content-Type:Content-Language: X-ELNK-Trace:X-Originating-IP; b=GjeQxg7RGWNUGjcOCaoGnpDs2bBT5E3Gr QpA9wHJaDurMw26BZeM0oyAK7BqWS6K8EWyTdJf7ov69WVgsTpqb3bHrGOTgq7nKL0m e1ZWc77LnDidHhKZZIF5Guh6lyQP0LVFybK0BsPD7JDMhE81OInwM0bR8CPCGq7+vgN aRfd0vfE2tFwwxcGWQOJBWCorWjOFB8QQUAmsle0mn6tHdtwInyn1pf4YwHu0FZaJno gToogm/y4NDqps9nsOghN0qf+TGyli6S5rZs/1evdHGTqzmX7hy+QPuAirQr4bqltAa yxxl1g9z4FAHoSc0RWduVUFl3QsiBbOB1+PQf1xnQ==
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=dk12062016; d=ix.netcom.com; b=nwbrWmTBy96FI5+mMCgMTFJf47M6lhQmslGEc7OC2KLYa6mIkwYigWoocA80U6ULiiRBp1aiK+ZZXverABUXAYgceK+guVADf8bdkl2IXRDW7QN72fYkggUZMptD9NMc50rJRlZ3YmwNzafTgjQvl9r5ZhXwLwWd3E1vA1n9zqU6FGBDNNMRa4VduK2JdHXREFwDbKJw0xbpGbR+sHYLG0jGlE4Aa0EFfCY9Oeua/sVBDvOsW/rY3MQNt/rY7qBbeap0D0uBSvJVNe7bvsRaOdj7E+zD4tTTWhJykkfT2LYVLOhel4gZDLMynOnBgPhu8EKeYbaLSX4VLexzt0CnxQ==; h=Received:Subject:To:References:From:Message-ID:Date:User-Agent:MIME-Version:In-Reply-To:Content-Type:Content-Language:X-ELNK-Trace:X-Originating-IP;
Received: from [71.212.59.17] (helo=[192.168.1.106]) by elasmtp-dupuy.atl.sa.earthlink.net with esmtpa (Exim 4) (envelope-from <asmusf@ix.netcom.com>) id 1jt7Wa-000G2y-JU for i18ndir@ietf.org; Wed, 08 Jul 2020 06:42:00 -0400
To: i18ndir@ietf.org
References: <20200706225139.GJ3100@localhost> <B8BC0F0A-94AB-4BEF-8A5F-449049E28D8F@frobbit.se> <20200707070456.GK3100@localhost> <B0FAFBAF9EA570CCFB2575CF@PSB> <20200707150542.GN3100@localhost> <A1F4A9338301D46132D62E72@PSB> <20200707214537.GU3100@localhost> <C2353A20A4699491C475BA2A@PSB> <20200708060645.GI3100@localhost>
From: Asmus Freytag <asmusf@ix.netcom.com>
Message-ID: <ce0413fc-1332-e0a3-1664-771908591f5e@ix.netcom.com>
Date: Wed, 08 Jul 2020 03:41:59 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <20200708060645.GI3100@localhost>
Content-Type: multipart/alternative; boundary="------------B065F29A61CAEBE0A5E2EBA5"
Content-Language: en-US
X-ELNK-Trace: 464f085de979d7246f36dc87813833b22356fd30c7fd936eaccccddae7960eaa2921aa7abd887727350badd9bab72f9c350badd9bab72f9c350badd9bab72f9c
X-Originating-IP: 71.212.59.17
Archived-At: <https://mailarchive.ietf.org/arch/msg/i18ndir/IwYME5sT2cmt0KLQvAOfAvikD6w>
Subject: Re: [I18ndir] I-D on filesystem I18N
X-BeenThere: i18ndir@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Internationalization Directorate <i18ndir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/i18ndir>, <mailto:i18ndir-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/i18ndir/>
List-Post: <mailto:i18ndir@ietf.org>
List-Help: <mailto:i18ndir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/i18ndir>, <mailto:i18ndir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Jul 2020 10:42:04 -0000

On 7/7/2020 11:06 PM, Nico Williams wrote:
> On Wed, Jul 08, 2020 at 01:36:35AM -0400, John C Klensin wrote:
>> I also think that a certain amount of respect is due to
>> established protocols that have gotten IETF consensus and broad
>> deployment.  That does not mean they can't be changed.  It does
>> not mean they are not wrong-headed either.  But it seems to me
>> that "I have an idea that I think is better" is not sufficient
> That is denigrating and completely unnecessary.  I'm not saying "I have
> an idea that I think is better".  I'm saying that the RUNNING CODE
> differs from the damned spec.
>
> Now, you can you not give a damn and let the spec and running code
> continue to differ.  Fine.  But why even bother updating the spec at all
> then?  Who cares what it says if no one bothers to implement it as
> written?
>
> We're about rough consensus, yes, but also running code damn it.
>
> You can write fiction if you like, but I'm for writing specs that
> reflect reality and have a chance in hell of improving reality.
>
> Nico

This is an interesting discussion and brings to mind two examples that 
are not IETF standards. One is HTML5 where people got tired about 
unsupported and inconsistently supported features of HTML and are giving 
the RUNNING CODE a much greater weight - even when moving forward. To 
the point that some are dissatisfied that implementations are driving 
the specification. (There are millions of details here that I don't care 
to tease apart here, I'm after a very rough analogy for the purpose of 
this discussion.)

The other is the early Unicode. Which was an absolute departure from 
existing character encodings and a bit of a clean break. As conceived 
initially, it would require a rewrite of all code, with (lossy) mapping 
to legacy encodings (but basically loss-less round trip ones) as the 
only means of interacting. Here, the inadequacies of the existing 
non-solution (character set independence) was so overwhelming that there 
was a critical mass of implementations that lined up behind the new, 
incompatible scheme.

Until someone invented the "universal adapter plate" in the form of 
UTF-8, which neatly allowed Unicode to co-exist in most character set 
independent environments and, without rewriting that code, to become 
dominant. (In doing so, they "fixed" a number of shortcomings of 
existing multi-byte encodings, not least of which are stateless and 
self-synchronizing nature of the mapping from UTF-8 to Unicode characters).

Crucially, the UTF-8 adaptation brings all the other elements of the 
Unicode departure from existing character set encodings, to wit, a fixed 
set of character properties and behaviors (such as renderings) that come 
into force any time a system treats UTF-8 as Unicode (instead of 
pass-through bytes).

Later Unicode had it's share of "fiction"; good ideas that remained 
that, like "paragraph separator" and "line separator" characters, or 
language tag characters. Some were later deprecated, which is good, some 
repurposed (for emoji flag sequences).

But Unicode also always allowed the definition of "what is a character?" 
to be broad enough to track "de-facto characters" that were defined and 
used in competing standards (compatibility characters, but also emoji 
and many other sets). And by absorbing these, preventing competing 
standards based on competing ideas of character-hood.

Now, as rough as these examples are (and I'm not suggesting we refine 
them), they indicate to me that it's not always possible to define 
a-priori what course is the best one to take. A clean break that 
requires new code to fix something may be the right answer if the 
problem is bad enough and the fix enables new capabilities.

In other cases, if a "good idea" leads to issues with interoperability 
so that nobody can rely on it, because either RUNNING CODE can't be 
changed, or the code that could adapt lacks critical mass, or 
implementers don't see the cost/benefit of change then it's a bad idea - 
even if it's been on paper for a long time. Sometimes "breaking the 
spec" to make it better match what's on the ground is the wiser approach 
(like Unicode's occasional deprecation of characters).

Trying to argue this in the abstract isn't going to resolve this issue. 
Each case has to be looked at based on its merits and the full details 
of the situation. And, like UTF-8, never count out the possibility that 
someone figures out the universal adapter plate.

A./