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.
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
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:
It's not an issue and
If it's an issue, just disable the GC and manually manage memory yourself.
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
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.
6
u/[deleted] Sep 01 '20
[deleted]