Breaking changes in Visual C++ 2015

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


On 5/7/15 7:41 AM, Andrei Alexandrescu wrote:
> 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

Ah, and the bleak outlook of LDC and GDC. -- Andrei



More information about the Digitalmars-d mailing list