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
