On Saturday, 10 June 2017 at 23:30:18 UTC, Liam McGillivray wrote:
D is a language with much promise, but it still has many
problems that prevent it from being the great replacement for
C++ that it was always meant to be.
There have been many changes suggested over time to improve the
language, but they were rejected as they would inevitably cause
breaking changes. I think that breaking changes are something
to be careful about, and they can definitely be a nuisance to
adapt to. But they must happen once in a while for things to
advance.
I think it's about time for D3 to start developing. So many
suggestions for language changes have accumulated by now so I
think that it's time to introduce to introduce the next wave of
breaking changes.
It's nice to see that there's a wiki page that documents the
history of suggested language changes. I applaud the
organization.
https://wiki.dlang.org/Language_design_discussions
I realize that there are people who want to continue using D as
it is, but those people may continue to use D2. Putting the
breaking changes in a separate branch ensures that DM won't
lose current clients as they can just continue using D2 as they
are. Even after D3 is stabilized, D2 could have continued
support until nobody wants it.
In Lua (a language with a bigger past and hopefully smaller
future than D), breaking changes are introduced in even minor
versions. While I do think that's excessively frequent, there
are still users of Lua 5.1. Making D3 doesn't mean that D2 has
to die.
I feel like D3 would see significantly wider adoption than D2
ever got, as long as it successfully solves the problems of D2.
Here are some ways that D3 can be an improvement of D2:
-Final by default
-A standard library that is effective with or without garbage
collection
Even Andrei has admitted some issues with D when answering this
Quora question:
https://www.quora.com/Which-language-has-the-brightest-future-in-replacement-of-C-between-D-Go-and-Rust-And-Why
Even if you don't want to release a D3 too soon, I think it
definately makes sense to get started sooner rather than later.
D3 should be developed for the same reason that D was first
developed; to make a better programming language that learns
from the problems of the one before.
I think we just should do those little fixes on D2 (eg. fixing
the standard library, DIP45), instead of yet again reinventing
the wheel. We have limited resources, I think first and foremost
we should port the backend from C to D to further improve our
productivity on the main compiler, then bugfixes and implementing
non-x86 targets will be much easier.