comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Add Deprecated aspect to Ada 2020
Date: Thu, 31 Aug 2017 19:13:12 -0500
Date: 2017-08-31T19:13:12-05:00	[thread overview]
Message-ID: <ooa8mq$6fj$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: 11fa58ea-fa48-4cc3-861d-c55df76c9e6b@googlegroups.com

"Lucretia" <laguest9000@googlemail.com> wrote in message 
news:11fa58ea-fa48-4cc3-861d-c55df76c9e6b@googlegroups.com...
> On Thursday, 31 August 2017 02:05:18 UTC+1, Randy Brukardt  wrote:
>
>> > I disagree.
>> >
>> > If backward compatibility can be maintained there is no reason to 
>> > remove
>> > the functionality. "Make it look better" does not count as one.
>> >
>> > If compatibility cannot be maintained, there is nothing to warn about, 
>> > you
>> > just fix the bug before next release.
>>
>> Yup. This is the exact policy that we apply to Claw. One never makes an
>> incompatibility that you don't have to, and that includes supporting old
>> interfaces essentially forever. Perhaps the documentation and/or comments
>> will suggest that new code not use the subprogram, but that's as far as 
>> we'd
>> go. (There's no way to prove no one still uses a particular subprogram,
>> after all, unless the entire system is in-house only.)
>
> No wonder software and OSes are so bloated when there are people like you
> who don't prune the old crap that needs to go.

There almost always is no such thing. The vast majority of "improvements" 
are only in the eye of the person who invented them, so in most case the 
best thing to do is to not change it in the first place. (I say this from 
experience, having built many "improvements" over the years that ended up 
simplifying nothing, just forcing a lot of work.)

The situation is somewhat different with captive code (say, the Janus/Ada 
compiler); one can check all of the uses and determine that no uses of the 
old code exist (or make changes to make that true). Then it is important to 
get rid of old, dead code.

> You put in the deprecated aspect, this is the warning to users, if they 
> don't adhere
> and change their code, they're in for a, known, surprise when that's gone.

That's stupid. In the case where an incompatiblity is required, you 
*immediately* make the change and document the appropriate changes. 
Otherwise, you have change the documentation and code twice, doubling work. 
If it is truely a good idea, there is no reason to wait (it's incompatible 
anyway), and users are going to have to change sooner or later, it might as 
well be sooner. (Indeed, in the vast majority of cases, that is the only 
option, since the routine in question has to be changed -- replacement is 
rarely a realistic option.) Otherwise, you're supporting old stuff that you 
want to get rid of, and you very well could end up encouraging people like 
me to put off changes to the last minute -- which will cause problems for 
everyone.

                                     Randy.


      reply	other threads:[~2017-09-01  0:13 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-19 18:52 Add Deprecated aspect to Ada 2020 Lucretia
2017-08-19 18:52 ` Simon Clubley
2017-08-19 18:54 ` Björn Lundin
2017-08-19 20:55   ` Jacob Sparre Andersen
2017-08-19 19:34 ` Dmitry A. Kazakov
2017-08-21 19:09   ` Per Sandberg
2017-08-21 19:34     ` Dmitry A. Kazakov
2017-08-22  5:47       ` J-P. Rosen
2017-08-22  7:38         ` Dmitry A. Kazakov
2017-08-22 19:32           ` Luke A. Guest
2017-08-22 20:04             ` Pascal Obry
2017-08-23  7:11             ` Dmitry A. Kazakov
2017-08-31  1:05       ` Randy Brukardt
2017-08-31 15:19         ` Lucretia
2017-09-01  0:13           ` Randy Brukardt [this message]
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox