The Case Against Autodecode
Nick Sabalausky via Digitalmars-d
digitalmars-d at puremagic.com
Sun May 29 10:35:35 PDT 2016
On 05/12/2016 08:47 PM, Jack Stouffer wrote:
>
> If you're serious about removing auto-decoding, which I think you and
> others have shown has merits, you have to the THE SIMPLEST migration
> path ever, or you will kill D. I'm talking a simple press of a button.
>
> I'm not exaggerating here. Python, a language which was much more
> popular than D at the time, came out with two versions in 2008: Python
> 2.7 which had numerous unicode problems, and Python 3.0 which fixed
> those problems. Almost eight years later, and Python 2 is STILL the more
> popular version despite Py3 having five major point releases since and
> Python 2 only getting security patches. Think the tango vs phobos
> problem, only a little worse.
>
> D is much less popular now than was Python at the time, and Python 2
> problems were more straight forward than the auto-decoding problem.
> You'll need a very clear migration path, years long deprecations, and
> automatic tools in order to make the transition work, or else D's usage
> will be permanently damaged.
As much as I agree on the importance of a good smooth migration path, I
don't think the "Python 2 vs 3" situation is really all that comparable
here. Unlike Python, we wouldn't be maintaining a "with auto-decoding"
fork for years and years and years, ensuring nobody ever had a pressing
reason to bother migrating. And on top of that, we don't have a culture
and design philosophy that promotes "do the lazy thing first and the
robust thing never". D users are more likely than dynamic language users
to be willing to make a few changes for the sake of improvement.
Heck, we weather breaking fixes enough anyway. There was even one point
within the last couple years where something (forget offhand what it
was) was removed from std.datetime and its replacement was added *in the
very same compiler release*. No transition period. It was an annoying
pain (at least to me), but I got through it fine and never even
entertained the thought of just sticking with the old compiler. Not sure
most people even noticed it. Point is, in D, even when something does
need to change, life goes on fine. As long as we don't maintain a
long-term fork ;)
Naturally, minimizing breakage is important here, but I really don't
think Python's UTF migration situation is all that comparable.
More information about the Digitalmars-d
mailing list