I want to add profile/coverage info in emacs now :)
D is a strange point in PL landscape, it's been here for ages, never took off (for some value of taking off) even though it seems there's a lot to like.
I want to add profile/coverage info in emacs now :)
D is a strange point in PL landscape, it's been here for ages, never took off (for some value of taking off) even though it seems there's a lot to like.
From my point of view in systems programming, experience with Oberon back in the day and such, I would really like that we would be talking more about D and less about Rust and Go, but unfortunately it isn't how things went.
But Digital Mars is a company. D:
>From my point of view in systems programming, experience with Oberon back in the day and such, I would really like that we would be talking more about D and less about Rust and Go, but unfortunately it isn't how things went.
As someone who has no idea what Oberon is or does sorry and believes that using anything other than Rust is literally pouring blood on your hands and de facto proscribes you in the future inquisitions on digital harm through software, why?
https://news.ycombinator.com/item?id=34211482
D has no (FAANG) corporate sponsor and it does all things well/has no particular speciality, these two things make it hard to compete with marketing of other languages I think
There's a small but dedicated and active community
a great feature IMO, helps communication in large teams I believe (in the imaginary world where teams use D :)
thanks for the link,
have the best day
Maybe it's like some languages that don't chase growth/viral/visibility but exist calmly doing work.
Good call - I was unfortunate enough that I had to use it professionally for a few years. As comic book guy in the Simpsons would say "Worst language ever!".
Is this about D code that interops with C/C++?
You have "extern (C++)" and @nogc for that
The GC also doesn't run if you don't call it so mitigating it's downsides while keeping the good aspects isn't all that hard.
Bear in mind you're simply not going to convince anti-GC folks that you can have the "good aspects" of a GC without the bad ones, and they're the folks you're trying to market to. To many C++ programmers the only good GC is one that is absent. You can tell them they're wrong all you want, but regardless of who's right, it's always been a losing battle.
You can also make it so it will compile but won't collect unless you ask it to explicitly.
We don't exclusively market to C++ developers. D replaced PHP and Java for quite a few D users.
If you see PHP and Java replacement as taking off, that's awesome. I was addressing those who want to see it replace C++.
There is lots of @nogc code available to depend upon
That's not sufficient here. You can literally have a billion @nogc libraries, and even if there was one single GC-requiring library that many people want to use, the problem would be still there.
The only way to make this work is to ensure all of the libraries most people want to use work fine without a GC (or have @nogc alternatives that people would actually want to use). While not theoretically impossible, practically speaking, that's incredibly hard to pull off when you have a shiny GC sitting there.
If the answer is along the lines of "corporate backing", why did Rust get corporate backing and D didn't?
Also in a world where JavaScript (excel, even) is dominant let's not ascribe these things to purely rational factors.
There's even a mode of D that operates this way by default, "-betterC" meant to be a C replacement
The GC really is an entirety opt-in component.
I'd encourage you/other folks to give D an honest try, you might be surprised
Yeah you're boned in that case I think and that's a real problem that can pop up if you want full @nogc
EDIT: Maybe not based on Max's comment
D-Plug (Audio FX plugins) is one example of having to build up a dependency stack of @nogc compatible deps, a lot of that is in-house stuff.
Not impossible but it's a commitment, at which point you may as well use something else unless you REALLY want to use D, for sure.
That's exactly the issue. Having to reinvent every wheel you need just isn't a selling point.
Though, I'm not sure you could even have a precise GC for C++ even if you wanted to, given the way most C++ is written.
That’s a difference without a distinction: people will use the defaults unless they can’t.
So in C++ libraries will avoid GCs unless their work basically requires it, whereas in D they’ll require it unless the author is constrained to a nogc requirement.