On Thursday, 13 March 2014 at 06:02:27 UTC, Walter Bright wrote:
Both myself and Don have stated on behalf of industrial
clients that we embrace
breaking changes that move the language forward, or correct
clearly identifiable
mistakes.
Breaking changes has been a huge barrier to Don's company being
able to move from D1 to D2. I still support D1 specifically for
Don's company.
Which has resulted in awkward situation where some of D2 feaures
are really wanted but doing transition "at once" it too much of
an effort to be managed easily.
D1 -> D2 had one huge breaking change that made the most
difference - const qualifier system. This change did not have an
obvious migration path, was not backed by compiler help and had
lot of not so obvious consequences to language semantics.
There is no harm in doing small breaking changes if good
transition path is provided.
I personally believe that far more damaging factor is that users
often expect DMD versions to be minor version releases while
those are in fact always major releases (which implies some
possibility of breakage by definition).
Also while C/C++ itself is pretty stable, real compilers are not.
I can't imagine anyone suddenly upgrading gcc version on
production scale and expecting stuff to "just work". So it is
wrong example to refer to.