a small study of "deprecate"
Jonathan M Davis
jmdavisProg at gmx.com
Wed Nov 7 13:26:32 PST 2012
On Wednesday, November 07, 2012 15:05:05 deadalnix wrote:
> Here is how I see it (and all language fail at that as far as my
> knowledge goes).
>
> Deprecation comes with a date and a message.
>
> Before the date, the dev is presented with the deprecation message when
> compiling. The message explain why the function is deprecated and what
> to use instead.
>
> After the date, the message pops, but now it is an error (unless some
> flag is used).
>
> At some point the function may be removed.
Date-based stuff was discussed previously and rejected. One of the major
reasons that it doesn't work is that there are times when you want to
deprecate based on versions rather than dates. But the _really_ big reason not
to do that is that if compile my code with version X of the compiler, it
should _always_ compile with version X of the compiler. It would result in a
big maintenance problem if you couldn't go back and rebuild older versions of
a program (or just an older program) with the compiler that it was originally
compiled with. It's one thing if it won't compile with a newer version of the
compiler or a newer version of the library, but not compiling with the same
version that it was developed with causes big problems later down the line,
especially if you're dealing with a program that doesn't get worked on very
often.
So, while giving a message that a particular symbol is going to be deprecated
on a certain date is fine, having the compiler deprecate it for you at that
date is going to cause problems.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list