D 2015/2016 Vision?

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Mon Oct 12 01:49:22 PDT 2015


On Monday, 12 October 2015 at 08:21:24 UTC, Kagamin wrote:
> On Thursday, 8 October 2015 at 14:13:30 UTC, Jonathan M Davis 
> wrote:
>> I've programmed extensively in C++ with smart pointers, and in 
>> my experience, circular references are rarely a problem. There 
>> are some cases where it's obvious that you have one (e.g. 
>> where one object owns another and they need to talk to each 
>> other), in which case you either use a normal pointer or a 
>> weak reference, depending on which makes more sense. And in 
>> the cases that you don't catch, you find them in testing, 
>> figure out what should be a weak reference to get rid of the 
>> circular dependency, you fix it, and you move on. It really 
>> isn't a big deal in general, though I suppose that there could 
>> be certain ways of designing programs where it would be more 
>> problematic.
>
> That's all understandable. What's not understandable is when 
> one insists that a necessity to figure out ownership for every 
> non-resource object in C++ is superior to D.

If you don't want to care about ownership, then use a GC. The 
only other memory management model that I can think of where you 
don't have to care about ownership is when everything is a value 
type on the stack, so there's nothing to own.

There are pros and cons to using a GC, and there are pros and 
cons to use reference counting everything on the heap. I don't 
think that either is objectively superior. It all depends on what 
you're trying to do and what your requirements are.

- Jonathan M Davis


More information about the Digitalmars-d mailing list