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