Final by default?

Joseph Rushton Wakeling joseph.wakeling at webdrake.net
Wed Mar 12 16:05:14 PDT 2014


On 12/03/14 23:50, Walter Bright wrote:
> The trouble, however, was illuminated most recently by the std.json regression
> that broke existing code. The breakage wasn't even intentional; it was a
> mistake. The user fix was also simple, just a tweak here and there to user code,
> and the compiler pointed out where each change needed to be made.
>
> But we nearly lost a major client over it.

I think for clarity it might be good to understand: was this near-loss because 
the client felt the language might have breaking changes in future, or because 
this breaking change had happened suddenly and with no warning?

A well-signposted and well-policed deprecation path is after all very different 
from what happened with std.json.

> So, there's the solution that has been proposed before:
>
>    !final
>    !pure
>    !nothrow
>    etc.

These sound nice to have for themselves, whatever is decided about final-by-default.


More information about the Digitalmars-d mailing list