Garbage Collection for Systems Programmers

cc cc at nevernet.com
Thu Apr 4 04:01:56 UTC 2024


On Monday, 1 April 2024 at 20:45:25 UTC, Adam Wilson wrote:
> The discourse around the GC has gotten so ridiculous that I 
> have seriously considered asking Walter to declare that "If you 
> want to create an OS or Video Game, consider a different 
> language."
>
> OS/Games is actually a fairly uncommon use of D, if you look at 
> what the people who aren't whining endlessly about the GC are 
> actually doing with it.
>
> Personally, I blame the OS/Game crowd for single-handedly 
> keeping D out of the web service space for the past *decade* 
> because, instead of improving the GC to the point that 
> long-running processes are possible, we've built a mountain of 
> (mis)features designed to assuage their demands. I maintain 
> that this was probably the second biggest mistake in D's 
> history.

"We'd have the programming Utopia if only all the goddamn users 
stopped getting in the way!"

Seriously though, what an asinine opinion.  Excluding an entire 
market, to satisfy your religious opinions on memory management.  
Nobody has stopped anyone from improving the GC.  By all means, 
please improve the GC.  I develop commercial games in D, I have 
come to avoid the GC much of the time, and I'm pretty sure I 
haven't spent any of the past 10 years of my workload getting in 
your way of making the GC the best it could be.  I simply haven't 
been using it.  Oh no, someone exposed GC.free and __delete as a 
hacky temporary stopgap?  Gosh, that 30 seconds of work sure did 
get in the way of a decade of someone else making that thing I 
want better.

In *my* opinion, a language that can't handle modern 60+ fps 
(144-240+ nowadays) gaming or graphical simulations is nothing 
more than a hobbyist piece of crap and not fit for business.  But 
that's just my opinion... I don't try to force it on anyone else 
;) I'm aware other industries exist and we can all graze on our 
respective farms in peace.

Fortunately, there's numerous ways to get around the problems of 
stop-the-world GC skips, even working within the GC.  It takes a 
tiny bit of thought, and a document was drafted to suggest these 
techniques to newcomers, though nobody strained themselves with 
effort over this since, naturally, the doc wants to sell you his 
favorite pills.  Fair enough.  Even so, it is the natural 
philosophy and developmental style of many to simply avoid the 
GC.  You can either react to this with "different strokes", or 
you can go full zealot and start holding inquisitions for all the 
blasphemers.

It actually takes very little effort to please the detmem crowd 
by just giving them the basic tools they want, compared to trying 
to sell them on broad spectrum cure-all GC liniment when the 
seller's approach is "Just use it! Just use it already damnit 
stop asking questions! No refunds!" and is brazenly ignorant of 
how much of an issue naive GC use can be for particular 
situations.  D actually HAS gone and given them the tools they 
need, albeit they don't come in the same nice shiny box as the 
GC.  They're just kind of handed out in plastic baggies.  But 
hey, that's how Ultima sold 50,000 copies before Richard's net 
worth clapped $1.5B.

In a world where the gold standard of technology is "It Just 
Works", D's GC... *doesn't* Just Work.  Oh, It DOES Work.  It 
just Works With Effort.  And that's a problem you've had 10 years 
to do something about.  What has been done besides paint the 
church and hand out a lot of fliers?





More information about the Digitalmars-d mailing list