GCs in the news

via Digitalmars-d digitalmars-d at puremagic.com
Sat Jul 19 02:47:13 PDT 2014


On Thursday, 17 July 2014 at 14:05:02 UTC, Brian Rogoff wrote:
> On Thursday, 17 July 2014 at 13:29:18 UTC, John wrote:
>> If D came without GC, it would have replaced C++ a long time 
>> ago!
>
> That's overly optimistic I think, but I believe that the 
> adoption rate would have been far greater for a D without GC, 
> or perhaps with a more GC friendly design, as the GC comes up 
> first or close in every D discussion with prospective adopters.

This claim is being made frequently, but you need to consider 
that D started out as a more simpler language than it is today. 
Many of the distinguishing advantages of D can only be made 
possible _in a safe way_ when there is a GC. Everyone seems to 
agree, for example, that array slicing is one of these features. 
Without a GC, you'd either have to add a complicated reference 
counting scheme, thus destroying performance and simplicity, or 
you'd have to rely on the user for ownership management, which is 
unsafe. (A third way would be borrowing, which D doesn't have 
(yet).) I also believe that the Range concept was introduced at a 
later stage in D's history, thus the GC avoidance strategies that 
are being implemented in Phobos right now weren't available back 
then.

Therefore I cannot agree that D would have been adopted more 
eagerly without a GC; in fact, the adoption rate would have 
likely been less, because the language would have been crippled.

>
> However, it's way too late to change that now. IMO, the way 
> forward involves removing all or most hidden allocations from 
> the D libraries, making programming sans GC easier (@nogc 
> everywhere, a compiler switch, documentation for how to work 
> around the lack of GC, etc.) and a much better, precise GC as 
> part of the D release. Any spec changes necessary to support 
> precision should be in a fast path.

Add borrowing!


More information about the Digitalmars-d mailing list