Final by default?

Dicebot public at dicebot.lv
Thu Mar 13 00:25:32 PDT 2014


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.


More information about the Digitalmars-d mailing list