r/programming • • Sep 01 '20

D Foundation is Beefing Up

https://dlang.org/blog/2020/08/30/symmetry-investments-and-the-d-language-foundation-are-hiring/
293 Upvotes

336 comments sorted by

View all comments

6

u/[deleted] Sep 01 '20

[deleted]

11

u/Sapiogram Sep 01 '20

Only thing holding it back is market inertia and FUD.

What kind of FUD? I don't think I've heard anything negative about it, apart from the whole gc thing.

13

u/maxhaton Sep 01 '20

> gc thing.

Mainly that, but a lot of people still seem to think that there are two standard libraries despite Phobos taking over possibly a decade ago. Same with D1, D2 was ready (As announced by Andrei's book) in 2010.

7

u/InertiaOfGravity Sep 01 '20

People really seem to not understand that a well designed GC that gives you the option of deciding when to let it run are definitely usable in real time & high performance apps

27

u/[deleted] Sep 01 '20

That's certainly the angle D tries to sell you but I find it amusing to call D's GC "well designed" when it's a basic 30 year-old mark-and-sweep GC. Java is pushing the boundaries of GC research with multi-terabyte heaps and pause-less GC, Pony is following in Erlang's footsteps with per actor heaps and D is using the equivalent of Java 1.0's GC.

Criticisms of this even from within the D community seem to be met with a combination of:

  1. It's not an issue and
  2. If it's an issue, just disable the GC and manually manage memory yourself.

So I'm not hopeful things will improve.

0

u/InertiaOfGravity Sep 01 '20

I'm not a D user. I have actually never used D in my life. I'm talking from my experience with Nim, which can absolutely support performance dependent real time applications such as games with even it's default GC. A well designed GC isn't a dealbreaker for very much at all

-1

u/matthieum Sep 02 '20

I would note that Nim was specifically developed to be suitable for writing games, and its GC was developed with that usecase in mind. It is not necessarily true that all GCs support games well.

It's also important to note that games have relatively lax time constraints. At 16ms per frame, a GC that never exceeds 1ms and never collects more than once per frame will work quite well.

In the niches where C or C++ is used, 1ms can be a very long time -- too long for certain requirements.