On Thursday, 25 June 2015 at 21:06:38 UTC, Walter Bright wrote:
On 6/25/2015 12:48 PM, Mathias Lang via Digitalmars-d wrote:
And he's right. It is really annoying to update to a new version and have perfectly valid and working code breaking because someone had a nice idea.
Ideally, we should only ever break code that has a bug in it.

I've also been willing to break code if it involves significant performance, usability, or correctness improvements. Renaming, though, doesn't provide that.

Deprecation is *not* breakage.  Removal is.

This isn't like final-by-default where there can be only one default. We can have redundant names as long as the user can know why they exist (documentation comment) and which is preferred (deprecated attribute).

I suggest deprecation without removal (i.e. removal by Walter only).

The .Net Framework has had deprecated names since 2.0 (10 years ago) and you can still use them today and likely will be able to in the far future. And the fact that deprecation warnings are off by default in D already makes it ultra-conservative.

Mike

Reply via email to