[OT] Re: Why don't you advertise more your language on Quora etc ?

Atila Neves via Digitalmars-d digitalmars-d at puremagic.com
Mon Mar 6 14:28:48 PST 2017


On Monday, 6 March 2017 at 15:40:54 UTC, Rico Decho wrote:
>> If this isn't a perfect example of D's marketing problem I 
>> don't know what is. Someone who likes D and takes the time to 
>> write on the forum yet thinks the GC will randomly run no 
>> matter what.
>>
>> To make it abundantly clear: I'm not bashing on you in the 
>> slightest, Rico Decho. I'm just pointing out that there's a 
>> clear problem here in that we can't expect to convert e.g. C++ 
>> game developers who have never written a line of D before if 
>> we haven't even managed to educate the community yet.
>>
>> Unfortunately, I have no ideas on how to remedy the situation. 
>> I also don't know how to get people to stop believing that C 
>> is magically fast either, which I think is a similar 
>> perception problem.
>>
>> Atila
>
> Actually it's written in the documentation.

That's true and was pointed out to me on Twitter by a C++ dev. I 
don't know what's up with that but I'm _pretty_ sure it doesn't 
happen in practice, but only somebody who knows the GC 
implementation well can comment I guess.


> If I remember well the garbage collection could be triggered 
> during any allocation, for instance when concatenating some 
> displayed text, and freeze all threads until the garbage 
> collection is done.

Right. So slap `@nogc` on whatever is in the game loop and that's 
guaranteed to not happen.

>
> In my opinion, the problem is D's GC implementation.

This is also a problem, yes.


> For instance, Nim uses a soft (realtime) GC, which is why Nim's 
> author himself has made the Urho3D wrapper :)
>
> With this approach, no need to disable the GC and make manual 
> allocations to avoid that the GC freezes all threads.
>
> Instead you simply use all the standard libraries as normally, 
> while still try to avoid allocating too much stuff during the 
> rendering of course.
>
> During the render loop, in Nim you occasionally call the GC 
> with an numeric argument telling how much milliseconds it is 
> allowed to use in the worst case.

That's pretty cool.

Atila



More information about the Digitalmars-d mailing list