Hacker News new | past | comments | ask | show | jobs | submit login

To get access to a wealth of libraries, support, documentation and tools, that D is sorely lacking in. To be able to use a state of the art garbage collector that provides some degree of guarantee about runtime performance as opposed to D's very poor garbage collector that provides basically no guarantees and is known to sometimes block an application for upwards of dozens of seconds at a time [1].

And most importantly, to be able to use a platform that has pretty strong guarantees about backwards compatibility and that is able to run code from 10 years ago without modification, as opposed to D where even a minor version update can end up breaking D's own standard library.

Certainly D has a niche of users who are very passionate about it and for those guys, all the power to you guys and don't bother listening to me... but for most of us, well after 20 years it really hasn't established itself as a reliable language to use beyond that niche. It's no longer 2005, a time when C++ was stagnating and there was a lot of opportunity for a new programming language to sit some where between Java and C. Instead of being released with a roadmap, some promising libraries and frameworks that establish a clear use case where D could shine, and a license that allowed broader community involvement in the implementation of the language and its standard library, it was released as a proprietary compiler that ended up quickly resulting a very fragmented community with a lot of infighting, many missteps and mismanagement made on the part of D's leadership the result of which is that D lost on the order of 5-10 years worth of progress for nothing.

It's now 2021, C++ has advanced significantly since those days, there's many new languages such as Go and Rust that have taken the steam out of D and are progressing far more rapidly... and D, which at one point in time was actually innovating on language design, is now constantly trying to play catch up with other languages and implementing half-assed features. The language is often referred to as a kitchen sink of functionality and I kid you not when I say D is literally in the process of working on adding a quasi-borrow checker to the language just so it can keep up with Rust.

[1] https://pointersgonewild.com/2014/09/09/ds-garbage-collector...




> To get access to a wealth of libraries, support, documentation and tools, that D is sorely lacking in.

Libraries have never been an issue for me. You get all C libraries trivially, so to the extent that C has libraries, so does D. I also embed R inside my D programs, so I get access to every R library. And if you want to object that "R is slow", I'm not talking about only calling R, I'm also talking about calling R bindings to C++ libraries without having to involve R. I suppose there would be some marginal benefits to having everything written in D, but many people seem more than happy to use languages like Python that access functions written in other languages.

> And most importantly, to be able to use a platform that has pretty strong guarantees about backwards compatibility and that is able to run code from 10 years ago without modification, as opposed to D where even a minor version update can end up breaking D's own standard library.

Breaking changes are not that frequent. You're right, though, if you have a zero-tolerance policy with respect to breaking changes, you can't use D or any other language that has breaking changes.

> it was released as a proprietary compiler that ended up quickly resulting a very fragmented community with a lot of infighting, many missteps and mismanagement made on the part of D's leadership the result of which is that D lost on the order of 5-10 years worth of progress for nothing.

You're referring to things that happened before the pyramids of Egypt were built. Why would someone that has no interest in the language spend time writing comments about ancient, ancient history on Hacker News?


This comment is well written and pretty informative. The fact that it's downvoted to gray text shows how much of an over opinionated echo chamber this site has become.


I think it misses the fact that D enables patterns that are fundamentally not possible in other languages and represents a slightly odd fusion of two extremely intelligent people with almost totally different approaches to software. The result of that, D, let's you write C++ but also Pythonic code - C++ has definitely caught up, but it still lags massively behind in fairly fundamental things that D stakes it claims on.

For example: D has Ada-style contracts - these are extremely simple, and so blindingly obvious it's criminal they're so uncommon.

I also don't like the tone of the last paragraph. Should we be trying new things or not? Named arguments have just been approved, we're hashing out string interpolation as I write this, memory safety is an ambition but we can't rush it etc.


These sort of doom predictions have existed since the beginning of D, it hasn't stopped getting users. It's basically FUD. If you look at the thread link, basically everyone is happy using D so maybe contrast this well written criticism with reality...


> To get access to a wealth of libraries, support, documentation and tools, that D is sorely lacking in.

That's certainly a big factor of the network effect. Although, I have to say that I'd probably rate this higher for almost any other popular language than for C# and Java, as with the latter it's quite often that your corporate overlords don't just let you use any library willy-nilly.

Then again, if you're in such a situation, it's quite likely that you don't have a free choice of your language, either. (Unless in weird corner case situations where you could deploy a binary but not depend on a current C#/Java runtime, and your company wouldn't shell out for an AOT C#/Java compiler just for this lone project.)

I do miss Design-by-Contract in every language that doesn't have it, though. And using D might be slightly more likely than using Eiffel…


> I kid you not when I say D is literally in the process of working on adding a quasi-borrow checker

It is a borrow-checker, and it's a good idea, if you disagree go and write C


So there is really no reason to be happy using D! What are those organizations using D thinking?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: