Why is D's GC slower than GO's?

Don Allen donaldcallen at gmail.com
Tue Nov 1 20:47:23 UTC 2022


On Tuesday, 1 November 2022 at 16:52:34 UTC, bachmeier wrote:
> On Saturday, 29 October 2022 at 15:45:11 UTC, Ola Fosheim 
> Grøstad wrote:
>> On Saturday, 29 October 2022 at 14:43:54 UTC, bachmeier wrote:
>>> If you're changing the compiler to add a different GC 
>>> strategy, you can add managed pointers.
>>
>> I think you need more than this to do it well, in terms of 
>> system level programming.
>>
>> You need to minimize thread-to-thread interference. You need 
>> to strengthen the type system and make better use of `shared`. 
>> Turning D into a AoT Java/C# just begs the question "Why am I 
>> not using Java or C#?"
>
> I was replying to someone claiming they couldn't write a new GC 
> because they need managed pointers. I'm not going to take a 
> position on whether that is sufficient, but if they have a 
> fork, they can add them to the language and show the benefits.

Having gotten thoroughly sick of the general tone of too much of 
this forum, I've taken a many-day break from it.

But I looked in today and saw this thread. It confirmed my reason 
for taking the break, in spades.

I greatly admire what Theo de Raadt has achieved with OpenBSD, 
due to his own extraordinary technical talent and his ability to 
attract smart people who believe in his goals and approach. I do 
not admire de Raadt's nasty, condescending way of dealing with 
(mostly) innocent victims who post to misc at openbsd.org. But I do 
agree completely with de Raadt's Law for dealing with people who 
say "OpenBSD should really do X", which is "Send us a diff", 
usually followed by some variant of "or get lost".

I think a number of people complaining about aspects of D, real 
and imagined, should be made familiar with de Raadt's Law. They 
also should be reminded that this is an open source project, 
available to all of us free of charge. You can't behave like an 
aggrieved paying customer in this circumstance. The project was 
started by Walter and he continues to be the leader and major 
contributor. D would not exist without him. We are his 
beneficiaries. Those who have complaints, and especially those 
who state them rudely but don't contribute code because they 
don't "have the spare time" or just want someone else to do the 
work they won't, should not be taken seriously. Unless, of 
course, they've come up with a bolt-from-the-blue insight, which 
seems to be an exceedingly rare occurrence. What this amounts to 
is that I think Walter is too nice a guy; a little de Raadt (very 
little!) would be a big help.

Another issue is marketing. Talent for that is rare in great 
engineers. Wozniak was the technical smarts behind Apple as a 
startup, but Jobs had the marketing flare. A historically great 
combination. Andrew Kelley seems to be one of those rare people 
with both engineering and marketing talent, though it remains to 
be seen (when V1.0 finally happens) whether he's really a great 
engineering talent. Linus Torvalds is another, who gets attention 
by being outrageous. Richard Stallman is still another. Eccentric 
as he is, he has a powerful mind and makes a strong, clear 
argument for sharing and community. And even de Raadt knows how 
to reign in his nastiness in public and just lets us see how 
charming and brilliant he can be.

Walter admits he's not a good marketer. Perhaps he's right, 
though I've seen a number of his talks and thought they were 
quite good and entertaining. Walter is a classic great engineer; 
I've known a number of them over the years in places like MIT and 
BBN. Look up Frank Heart, Ray Tomlinson, Bob Kahn, Gerald J. 
Sussman and Tom Knight. None of them care or cared about 
marketing. Some would have been good at it if they had, some not.

There are a number of reasons why programming languages become 
hugely popular or not, but having an attention-getting advocate 
is clearly a huge plus. Walter's talents lie in engineering good 
compilers and in evolutionary language design. He's not Steve 
Jobs, or even Andrew Kelley. But he has produced a really fine 
piece of work, a clear improvement over C, with which I have a 
lot of experience (ever tried to write code on an overloaded Vax 
780 running 4.3 BSD?), and I suspect, over C++, with which I have 
only a little experience, as well. Is it perfect? Of course not. 
Show me the perfect programming language. Whether it meets your 
expectations or not is your call. But I really think that this 
constant bitching about D, from people who are not putting their 
time where their mouth is, is beyond the pale.

And for the record, the D GC has simply not been a problem in my 
work with the language. And I would point out that the language 
makes it easy to avoid dynamic allocations where they would be 
undesirable (by using stack-allocated buffers, as occurs 
repeatedly in the C library, e.g., strncpy).




More information about the Digitalmars-d mailing list