Isn't it about time for D3?

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Wed Jun 14 02:18:58 PDT 2017


On Wednesday, June 14, 2017 07:28:34 Wulfklaue via Digitalmars-d wrote:
> Unless i am wrong there seem to be only one or two people
> actually pushing this D3 idea...

It comes up periodically, because there's some change that someone wants
that will never make it into D2. Historically, it's the response to most
anyone being told that what they want won't make it into D2, and actually,
it used to come up quite a bit, but it rarely comes up now. Sure, there are
some changes that we'd probably make to the language if we were doing things
from scratch or willing to just break every existing D program, but I think
that you'd have a hard time getting folks to agree on a list of what would
be changed under those circumstances, and for the most part, I think that
folks will agree that it's not worth it at this point - certainly, I think
that you're going to have a hard time finding any core contributors who
think that starting D3 would be a good idea at this point. And I'd be
shocked if anyone managed to convince Walter or Andrei that it was a good
idea.

Now, there are changes in Phobos which a number of us would like to see that
you'll see a much greater consensus on, some of which aren't likely to be
possible without breaking a lot of code (most notably, the fact that strings
auto-decode to ranges of dchar), which is part of why there was a recent
discussion on creating a new version of Phobos that would eventually replace
the one that we have now
( http://forum.dlang.org/post/volmdaxjihbkpbtplynj@forum.dlang.org ), but
even that discussion didn't exactly gain much traction, and changes that
require massive breakage in Phobos are unlikely to happen, even if we'd very
much like those changes, precisely because they'd cause massive breakage.

It's still possible to make changes in the language and standard library
without breaking everyone's code, and there's still plenty of room to make
some changes which are breaking changes if they bring enough value, but
there's a much greater focus on stability and avoiding code breakage than
there used to be, and having the massive breakage of redoing the standard
library or moving on to a new version of the language really doesn't fit in
with that. And we can do quite a lot in place without such massive breakage.
However, some folks are always looking for massive changes in the search of
making the language perfect. So, there will likely always be occasional talk
of moving on to D3, even if it is unlikely to be on the table any time soon,
if ever.

That being said, if you're expecting to be able to write D code and then
have it compile 10 years from now with whatever the current compiler is at
that time, you're likely to be disappointed. We're targetting stability, and
we're better at managing change than we once were, but there are still
occasional changes to the language, and even if the standard library is not
undergoing massive churn, it does change somewhat over time. If you're
maintaining your code and making the occasional, required adjustments when
the language or library changes something that requires adjustments, then
you should be just fine without having to do massive code rewrites or
anything like that (and at this point, breaking changes normally involve a
deprecation process so that they don't just force you to immediately change
your code). But if you write your code now and try and compile it in a few
years without maintaining it in the interim, then you're likely to have at
least some code which won't compile anymore.

- Jonathan M Davis



More information about the Digitalmars-d mailing list