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.
Dev resources are stretched thin as it is, I doubt the core team
would go for it. For example, the vast majority of the work on
the main compiler frontend in the last year was done by one
person, 3-5 if you're being generous:
https://github.com/dlang/dmd/graphs/contributors?from=2016-05-01&to=2017-06-10&type=c
I think we need to build that team up before we consider
branching again. While it has now been longer since the D2
branch than from the beginning to D2, I get the impression the
core team is nowhere near finished with D2, to the point where
they want to branch again.
While I personally think a D3 branch now would make sense on the
technical merits, I doubt we're at an organizational state where
we can afford it, ie not enough manpower.