Dicebot on leaving D: It is anarchy driven development in all its glory.
Chris
wendlec at tcd.ie
Thu Sep 6 09:35:27 UTC 2018
On Thursday, 6 September 2018 at 08:44:15 UTC, nkm1 wrote:
> On Wednesday, 5 September 2018 at 07:48:34 UTC, Chris wrote:
>> On Tuesday, 4 September 2018 at 21:36:16 UTC, Walter Bright
>> wrote:
>>>
>>> Autodecode - I've suffered under that, too. The solution was
>>> fairly simple. Append .byCodeUnit to strings that would
>>> otherwise autodecode. Annoying, but hardly a showstopper.
>>
>> import std.array : array;
>> import std.stdio : writefln;
>> import std.uni : byCodePoint, byGrapheme;
>> import std.utf : byCodeUnit;
>>
>> void main() {
>>
>> string first = "á";
>>
>> writefln("%d", first.length); // prints 2
>>
>> auto firstCU = "á".byCodeUnit; // type is `ByCodeUnitImpl`
>> (!)
>>
>> writefln("%d", firstCU.length); // prints 2
>>
>> auto firstGr = "á".byGrapheme.array; // type is `Grapheme[]`
>>
>> writefln("%d", firstGr.length); // prints 1
>>
>> auto firstCP = "á".byCodePoint.array; // type is `dchar[]`
>>
>> writefln("%d", firstCP.length); // prints 1
>>
>> dstring second = "á";
>>
>> writefln("%d", second.length); // prints 1 (That was easy!)
>>
>> // DMD64 D Compiler v2.081.2
>> }
>
> And this has what to do with autodecoding?
Nothing. I was just pointing out how awkward some basic things
can be. autodecoding just adds to it in the sense that it's a
useless overhead but will keep string handling in a limbo forever
and ever and ever.
>
> TBH, it looks like you're just confused about how Unicode
> works. None of that is something particular to D. You should
> probably address your concerns to the Unicode Consortium. Not
> that they care.
I'm actually not confused since I've been dealing with Unicode
(and encodings in general) for quite a while now. Although I'm
not a Unicode expert, I know what the operations above do and
why. I'd only expect a modern PL to deal with Unicode correctly
and have some guidelines as to the nitty-gritty.
And once again, it's the user's fault as in having some basic
assumptions about how things should work. The user is just too
stoooopid to use D properly - that's all. I know this type of
behavior from the management of pubs and shops that had to close
down, because nobody would go there anymore.
Do you know the book "Crónica de una muerte anunciada" (Chronicle
of a Death Foretold) by Gabriel García Márquez?
"The central question at the core of the novella is how the death
of Santiago Nasar was foreseen, yet no one tried to stop it."[1]
[1]
https://en.wikipedia.org/wiki/Chronicle_of_a_Death_Foretold#Key_themes
More information about the Digitalmars-d
mailing list