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.

Reply via email to