On Tuesday, 16 February 2016 at 10:06:12 UTC, ZombineDev wrote:
Another bonus to introducing the mutable keyword is the option to make everything immutable by default (in a future version of D) and allow the users to have mutable objects only if they use the mutable keyword.

While some folks do bring that up from time to time, I think that it's pretty clear that that would be so restrictive that it would risk killing D. As it is, many programmers avoid const altogether, because it's too restrictive. Heck, ranges are designed in such a way that they require mutation to work, and they're everywhere.

immutable has its uses to be sure, but I don't see how it's anything but a pipe dream to expect any version of D to be immutable by default. For most programmers, it would be way too annoying and way too verbose, because they'd be forced to slap mutable on most everything.

Regardless, there isn't much point in planning for a future version of D. We don't know what we're going to want to do at that point, and if we're actually willing to break backwards compatibility in a serious way, what D2 looks like doesn't really matter much for D3. And we don't even know whether there will ever be a D3. What matters to us now is what we do with D2 for making it a good language now and not what we may or may not do with a future version of the language. Planning for D3 now would be like planning for D when working on finishing up C++98.

- Jonathan M Davis

Reply via email to