On Wednesday, 12 March 2014 at 22:50:00 UTC, Walter Bright wrote:

We're past the point where we can break everyone's code.

I suspect changes to the default behaviour of the language can be made if they are managed well. It just needs to be done gradually. Not making improvements to the language sacrifices future clients at the expense of existing clients.

Release x:
Add a -final_by_default switch. Those that want 'final by default' can start building their code with that feature. Default is still not 'not final by default'. Warn with release that default behaviour will change in y+z releases.

Release x+y:
Add a -no_final_by_default flag and encourage users who don't want 'final by default' to use that flag in preparation for the next release. Default is still 'not final by default'. Repeat warning that default will change with next release.

Release x+y+z:
Make the switch to *final by default*. Maintain the -no_final_by_default flag as long as you deem necessary.

In Addition:
Make binary and source code for previous versions *easily* accessible. Procrastinators can always revert to a known state.

My 2 cents.

Reply via email to