[OT] Dear Google Cloud: Your Deprecation Policy is Killing You

H. S. Teoh hsteoh at quickfur.ath.cx
Mon Aug 17 14:38:54 UTC 2020

On Mon, Aug 17, 2020 at 02:17:58PM +0000, FeepingCreature via Digitalmars-d wrote:
> I'm in favor of killing old code. Google and MS can afford to carry
> deprecations because they can literally throw hundreds of people at
> it. (And make no mistake - it costs them.) D should focus on being the
> best language it can be in each moment. I think our reaction to this
> should much rather take the form of cautiously weighing new features
> against their maintenance cost than worrying about whether or not D
> should deprecate old ones.  Worstcase, you get old features that
> linger and look usable despite nobody being willing to maintain them
> or being actively discouraged from maintaining them, cough std.json
> cough.

I think we should pay attention to the distinction Steve draws between
deprecation in the sense of discouraged but still working, vs.
deprecation in the sense of it won't compile until you fix your code.
One way to discourage the use of certain deprecated features but still
allow old code to work, is to deprecate them, then undocument them, but
never remove them.  So the old code still compiles and works as before,
but the old features are no longer documented and so new code will no
longer use them.

Of course, as you said, maintaining forever backward compatibility does
come with a cost, a potentially very heavy one.  You have to keep the
old code around basically forever, *and* maintain it in the face of new
changes. And the existence of this old code may forever prevent certain
things from ever being fixed, because the fix would break the old code
in a fundamental way.  In some cases you might be able to re-implement
the old code in terms of the new, but that isn't always possible and
it's a big resource sink. Probably bigger than we have the manpower for.


Life is complex. It consists of real and imaginary parts. -- YHL

More information about the Digitalmars-d mailing list