Jonathan M Davis wrote: > Deprecating something is still going to break code
Breaking with deprecated is an entirely different kind of breakage than removing something. deprecated means simply "please don't use this specific thing". You can tell it "shut up I know better than you" and be on your way. It's in your face enough that you can change it right there and then if you want to, but it's easy enough to shut it up too. Here's my preference list for changes: Top preference: don't change stuff. Next: use the deprecated attribute Next: versioned scheduled to be deprecated messages. I don't like being spammed every time I compile. Next: scheduled to be deprecated messages as they are now Last: removing it entirely. (this should be very, very rare especially if we want to be called stable. Nothing has pissed me off more with the last few releases than Phobos losing functionality.)