On Wednesday, 21 October 2015 at 20:50:29 UTC, Andrei Alexandrescu wrote:
Better late than later.

http://wiki.dlang.org/Vision/2015H2_(draft)

Destroy. After we make this good I'll rename it and make it official.


Andrei

Memory management
"No GC" remains a primary concern going forward for the standard library and client code. We need good language+library support and robust idioms to follow for good no-GC code.

language-level smart pointers would be a good start. Library level ones feel like an ugly hack honestly, its been repeatedly beaten to death all the issues there is in implementing them at library-level and the only solutions are more ugly DIPs to duct tape it together - look, DIP25 required another DIP just to fix the DIP itself. http://wiki.dlang.org/DIP77

Another major issue is the lack of -> like C++, which means that methods on the smart pointer can't be disambiguated from methods on the object it's wrapping.

D's entire memory management system almost feels C arcane compared to where C++ is moving.
Scope as an attribute is still mostly unimplemented AFAIK.
Honestly, I think the new C++ guidelines have a lot of goodies in it...

I'd like to just be able to use D without the GC. I don't mean a gimped version of D where I might as well just be using another language. D's GC is just slow, and honestly, not viable for most tasks you're going to use a system's level language for. Yeah, I'm going to get flak for that and people are going to cherrypick data that shows that a GC'd language has been used in some OS that was used by 7 people total or something, but lets not delude ourselves - there's a reason why everytime D gets optimized for a benchmark the first thing anyone does is essentially nix all allocations and replace classes with structs.

Reply via email to