Ghosting a language feature

Walter Bright newshound2 at digitalmars.com
Mon Sep 21 10:39:44 UTC 2020


On 9/21/2020 2:06 AM, Mathias LANG wrote:
> Did you know that `deprecated` is so amazing that it's the feature that 
> Sociomantic **backported to D1** ? That's right, this feature is so awesome that 
> Sociomantic decided they needed it more than any other D2 features, because of 
> how much it simplified internal libraries updates. And it had amazing ROI.

Deprecated is indeed amazing, and it's even sprouting up in other languages!

> In conclusion, I simply hope we keep on putting more consideration into why 
> people come to D, as opposed to why people say they won't. And people come to D 
> not for a language that has eternal backwards compatibility, because one simply 
> can use C++ for this.

My thoughts on this definitely evolve over time.

My current thinking is we should remove a feature if it actively impairs the 
progress and correctness of the language, i.e. if it causes harm. But features 
that are just obsolete, but do not harm things, they can stay as "ghosted" 
features until they do cause harm.

For example, I had some grief with the D2 Phobos because my code was heavily 
dependent on the D1 date and time routines. There was no easy upgrade, and I did 
not want to spend the time to re-engineer the extensive code. This was the 
genesis of the "undeaD" library, which has turned out to be popular. I 
apparently wasn't the only one.

People may not come to D because it has eternal backwards compatibility, but 
some definitely leave because they got tired of constant breakage.

Personally, I believe C and C++ have gone too far with backwards compatibility, 
as some of that stuff just cripples things going forward.


More information about the Digitalmars-d mailing list