Breaking changes in Visual C++ 2015

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Thu May 7 07:41:13 PDT 2015


On 5/7/15 5:16 AM, d user wrote:
> On Wednesday, 6 May 2015 at 18:26:27 UTC, Brad Anderson wrote:
>> https://msdn.microsoft.com/en-us/library/vstudio/bb531344(v=vs.140).aspx
>>
>> I'm sharing this specifically so we can have an unproductive flamewar
>> about whether breaking changes in D are sometimes worth it or if they
>> are holding D back from mass adoption :).
>
> the truth is, one of the biggest things holding D back from mass
> adoption is the complete lack of tooling compared to  basically every
> other mainstream language.
>
> Compare D to Go,
> https://golang.org/cmd/go/
>
> Go comes with a package manager, a linter, a static analysis tool, a
> formatter. Does D have these in some form? Sure. But you have to go
> hunting for them, and they're OK at best.
>
> And really, the only thing to blame for this is dmd. Go provides a Go
> parser and tokenizer right in their standard library - just one of the
> benefits of their compiler being written in Go.
>
> A lot of D's issues come back to: dmd is long in the tooth. Things D
> used to tout(faster compiler times) aren't really there anymore. My
> _desktop_ has a 8 core CPU - which dmd uses a whole 1 of when compiling.
> Due to how modules are compiled, it's _slower_ to do separate object
> compilation like in C++, so it's impossible to even get a gain from
> parallel compilation.
>
> Then you have LDC and GDC which generally lag behind dmd by a version or
> two(usually moreso for GDC,) fragmenting the libraries heavily because
> many new D versions fix tons of bugs. Due to dmd's license, it can't
> even be redistributed on Linux, BSD, etc. So now you have compilers for
> major Linux distros that are lagging versions behind. And really, the
> packages aren't well maintained anyways - LDC got blacklisted from
> Ubuntu for being unmaintained.
>
> If there's anything to learn from Go's success, it's that you don't need
> a good language design to be successful. If you want D to be successful,
> submit some PRs to SDC. If you want D to stay unpopular, keep moving
> towards Haskell with braces.

Agreed except for one point - compilation speed. I've very carefully 
measured on comparable projects. Go is marginally faster to compile than 
dmd, but dmd is faster than Rust. C++ can't hold a candle to either 
without a large specialized build farm and a team to babysit it. -- Andrei



More information about the Digitalmars-d mailing list