Hacker News new | ask | show | jobs
by epage 1663 days ago
I first learned C++ 20+ years ago. While I've appreciated it, I also knew its shortcomings and had been looking for a replacement.

D had some missteps along the way that lost some initial traction. I also wouldn't be surprised if timing was a factor with more C++ warts being added while the programming community has learned more lessons along the way that could be applied to the next languages (Go, Rust).

As I followed D, the problems I remember there being were:

- Compiler availability (DMD vs GCC)

- Split stdlib

- It was aiming for C/C++ post-Java but covered more Java use case (GC) than the remaining C/C++ ones (no-GC). It took a while before BetterC. No idea how well that ecosystem has matured.

- It felt like they were shoehorning every feature into the language rather than having a cohesive design strategy

These have slowly been resolving but Rust is now here, targets most of BetterC's use cases by default, and the borrow checker has let me squeeze out performance out of my code that would have been irresponsible without the compiler making it maintainable.

4 comments

> - Compiler availability (DMD vs GCC)

> - Split stdlib

Oh, yes, even as a complete outsider who merely reads D related threads from time to time, I remember these coming up repeatedly years ago. Both on HN and the programming side of reddit, among the top comments on D related threads. The tone was one of these being showstopper issues too.

To be clear, I have no experience with D myself - the point is just about the PR side of things and how things seemed to an outsider.

They come up now still, in part because people read old hackernews threads and don't actually read our docs or other information i.e. the standard library issue (Tango vs. Phobos) has been resolved for 10 years.
My point isn't that this is still a problem but that this was one of the blockers when I was originally looking at D and it was never clear from an outsider when it was resolved (I've assumed it was resolved at this point, more speaking 5-10 years ago).
Ironically as someone who wishes D distanced itself from C++ more, my feeling is that D is catering too much to the C++ programmers and not catering to the "Java programmers" enough. There is a lot of effort going into not only binding to C/C++ libraries, but also C/C++ interop, which appeals to a small group of users who potentially want to migrate a C++ project into D incrementally.
> shoehorning

That happens to all languages over time. The more interesting thing is how well do those features fit in with the language's style.

D was still fairly young when I was looking at the feature list [0]. The impression I walked away from it with is "Hey, this thing in boost is cool, let's bake it into the language".

[0] https://web.archive.org/web/20110320130326/http://www.digita...

the "Split stdlib" thing is about 15 years out of date (and only applied to D1, whose final release was in 2012).

I wish that criticism would go away.

My post was about why D had a hard time gaining initial traction. I also brought up DMD vs GCC and I assume that was also resolved years ago.
That's never been a "vs", both work very well.