Isn't it about time for D3?

Liam McGillivray via Digitalmars-d digitalmars-d at puremagic.com
Sat Jun 10 16:30:18 PDT 2017


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.


More information about the Digitalmars-d mailing list