On Fri, 18 Apr 2014 16:48:43 -0700, Walter Bright <newshou...@digitalmars.com> wrote:

On 4/18/2014 3:02 PM, Michel Fortin wrote:
Objective-C enables ARC by default for all pointers to Objective-C objects. Since virtually all Objective-C APIs deal with Objective-C objects (or integral values), if you limit yourself to Objective-C APIs you're pretty much memory-safe.

"pretty much" isn't really what we're trying to achieve with @safe.


The point being, D could have managed and unmanaged pointers (like Objective-C with ARC has), make managed pointers the default, and let people escape pointer
management if they want to inside @system/@trusted functions.

Yeah, it could, and the design of D has tried really hard to avoid such. "Managed C++" was a colossal failure.

I've dealt with systems with multiple pointer types before (16 bit X86) and I was really, really happy to leave that **** behind.


Managed C++ was a colossal failure due to it's extreme verbosity. C++/CLI and C++/CX are much tighter and more importantly NOT failures. I use C++/CLI in production code, and yes, you have to be careful, it's easy to get wrong, but it does work.

Note: that I am not advocating this for D and I think that avoiding it is the correct approach. But it wasn't a failure once the more obvious design flaws got worked out.

--
Adam Wilson
GitHub/IRC: LightBender
Aurora Project Coordinator

Reply via email to