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