Proposal on improvement to deprecated

Jonathan M Davis jmdavisProg at gmx.com
Sun Oct 2 18:48:17 PDT 2011


On Sunday, October 02, 2011 17:10:58 Walter Bright wrote:
> On 10/2/2011 1:16 PM, Jonathan M Davis wrote:
> > The feature needs to be simple.
> 
> Yes, totally. And it is simple, now.
> 
> The trouble is coming from the wholesale deprecation of large swaths of
> Phobos with every recent release. I don't think the solution is to make
> deprecation more complex (because no matter what you do, the user will
> still have to re-edit his code, and that's the real problem), but to make
> deprecation and code breakage a rare event.

I think that that's a separate (albeit related) issue. If anything, the fact 
that we've been using the deprecated feature and found there to be issues with 
using it shows that it needs to be improved. I don't think that it needs 
drastic improvements (aside from adding a message to it), but it does need 
some improvement. I think that my suggestion does that, though Michel Fortin's 
suggestion in his response probably does it better because the result is even 
simpler than my proposal.

I completely agree that deprecation should be a rare event. However, a number 
of us feel that Phobos needs to be made more consistent and have been making 
changes in line with that (such as fixing the names to match the naming scheme 
of the rest of Phobos and to make stuff follow current D programming idioms, 
such as ranges). I fully expect that that will taper off and that Phobos' APIs 
will become more stable. But we either fix it now or leave it as inconsistent 
in the long run (thereby reducing its quality), since the longer that we wait 
to change it, the more code will break when we do.

For what it's worth, I think that most of the major changes are done aside 
from a few major module redesigns which have been in the works for some time 
(such as the redesign of std.stream and std.xml). The only major set of 
functions that I can think of at the moment that need to be looked at are the 
functions in std.string which take patterns, since they don't follow the 
correct naming scheme yet and there has been discussion of making them use 
regexes instead. So, I think that we're approaching the point when the APIs 
will stabilize.

Regardless of all that though, I think that the issues that we've found in 
using deprecated need to be addressed - preferably with a simple solution, but 
they need to be addressed just the same.

- Jonathan M Davis


More information about the Digitalmars-d mailing list