July 20, 2007
downs Wrote:

> I basically agree with the GC issues.
> 
> If it were up to me, I'd integrate a separate mode into the GC, in which it is only run in debug mode - and breaks on collection! Basically, I'd not use it as a collector per se, but as a tool to make manual memory cleaning easier.
> 
> Apart from that, I agree D is not quite ready for a massively parallel future - but the strength of
> the language is such that it can be made to be ready, without requiring any in-depth changes.
> Take the following example.
> 
> foreach (foo; parallel(bar)) { /* do stuff with foo */ }
> 
> Looks neat? It can be made to work _today_, with D 1.0 or 2.0, GDC or DMD, without requiring _any
> changes to the compiler_, using exclusively language features (about one page of code) - and even
> without any significant runtime overhead! :D
> And there's a decent amount of multithreading extensions for D already. Take a look at StackThreads
>   or DCSP on http://assertfalse.com/projects.shtml , all implemented using a minimum of machine
> specific code, and working fine (I think. I hope. :p )
> 
>  From my (admittedly overoptimistic and fanboyish) perspective, even without threading built into
> the language, D is quite prepared for a massively-multithreaded future. :)
> 
>   --downs

I agree. Since there is a delete keyword, garbage collection should indeed be optional.