On Wednesday, 7 March 2018 at 13:24:25 UTC, Jonathan M Davis
wrote:
On Wednesday, March 07, 2018 12:53:16 Guillaume Piolat via
Digitalmars-d wrote:
On Wednesday, 7 March 2018 at 06:00:30 UTC, Taylor Hillegeist
wrote:
> That way the breaking change was easily fixable, and the
> mistakes of the past not forever. Is it just the cost of
> maintenance?
auto-decoding problem was mostly that it couldn't be @nogc
since throwing, but with further releases exception throwing
will get @nogc. So it's getting fixed.
I'd actually argue that that's the lesser of the problems with
auto-decoding. The big problem is that it's auto-decoding. Code
points are almost always the wrong level to be operating at.
The programmer needs to be in control of whether the code is
operating on code units, code points, or graphemes, and because
of auto-decoding, we have to constantly avoid using the range
primitives for arrays on strings. Tons of range-based code has
to special case for strings in order to work around
auto-decoding. We're constantly fighting our own API in order
to process strings sanely and efficiently.
I'd agree with you, hate the special casing. However it seems to
me this has been debated to death already, and that auto-decoding
was successfully advocated by Alexandrescu and al; surviving the
controversy years ago.