On Wednesday, 14 November 2012 at 08:04:55 UTC, Jonathan M Davis
wrote:
but I'm one of
the Phobos
developers. It's fine if you use master (it could help us find
regressions if
nothing else), but I wouldn't really advise using it just to be
able to use
the -di flag.
There have been a few other recent bug fixes that have been
giving me enough headaches for me to want to try it it out. By
the looks of things, if I'm to make real use out of D, I'll have
to learn how to fix D as well.
Also, some of us are hoping that the change to deprecated will
be reverted in
favor of making it so that warnings will be the default for
using deprecated
Yes, that's what makes the most sense.
symbols rather than having error be the default. Having -di is
nice, but it
really doesn't fix much. The main problem (at least from the
library writer's
point of view) is that deprecating anything instantly breaks
the code of
anyone using that the now deprecated symbol. -di makes it so
that a programmer
can protect themselves from that, but it still shackles the
library writer
such that they can't deprecate anything if they don't ever want
to break
anyone's code without giving more warning that a note in the
changelog or
documentation.
This subject always makes me think of Python, however, it also
reminds me of the trap C++ fell into. Personally, I prefer
dealing with a few breaking changes now and then rather than
sticking with not-so-good decisions forever. In terms of man
hours wasted, sticking with a poor design choice can eat up far
more man hours over the years than the time taken to deal with a
real fix. But I do understand both sides of the coin having been
there myself. IMO, so long as you can stick with an older version
of the compiler and library for legacy code, you're OK. You guys
may want to ensure that older version of a library and compiler
can easily co-exist on the same OS installation as a part of the
solution to the deprecation breakage dilemma. If a programmer
could choose both the compiler version, and a library version for
importing into his source code, that would be excellent.
--rt