new DIP41: dmd/rdmd command line overhaul.
Jonathan M Davis
jmdavisProg at gmx.com
Wed May 22 16:52:09 PDT 2013
On Thursday, May 23, 2013 01:35:13 Jesse Phillips wrote:
> D is stabilizing and is stable enough for many. We want to make
> progress in that direction, we don't want to just halt
> development like was done at D1. We have been making it less
> painful to upgrade and that effort should continue and doesn't
> need to be through a "no breaking changes" mandate.
What it comes down to is that breaking changes must provide a sufficiently high
ROI, or they're unacceptable. The classic example of this from Walter is
renaming stuff. The ROI on that is generally very small, so he's pretty much
always completely against it even if he agreed that the proposed name was
better. An example of where the ROI was very was in making it so that implicit
fallthrough on switches was illegal. That's not just aesthetic. It catches
real bugs.
The trick then is figuring out with any proposed change whether the ROI is high
enough to make the change worth it. And Walter and Andrei (particularly
Walter) lean heavily towards thinking that the ROI on breaking changes must be
very high before they're acceptable. So, anyone arguing for a breaking change
has a very high bar to meet. Maybe that bar is too high sometimes, but if it's
too low, then we'll never reach the point where you can reasonably expect your
code to continue to compile with every new release of dmd (or at least for a
long time).
So, it's not the case that breaking changes are absolutely unacceptable, but
it _is_ the case that anyone wanting a breaking change has to present a very
strong case. And I don't think that that's necessarily a bad thing. In fact,
as the language and its implementation matures, it's pretty much a necessity.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list