On Friday, 17 July 2015 at 16:40:56 UTC, Jonathan M Davis wrote:
@nogc is mostly a PR thing IMHO. It has value in that it helps you find places where you accidentally used the GC (though if you really care, you can always use the profiler as you point out), and if @nogc is marked explicitly, it makes it easier to see which functions can be used in @nogc code, but ultimately, it really seems like it's there simply to appease the folks who don't want any GC usage at all.

I thought it was a PR thing, but because few things use malloc implicitely and @nogc enforce no GC, I find it actually useful to check if a function does zero allocations. Not the worst attribute.

Honestly, what we should do if we don't care about code breakage is make pure and @safe the default, since they really should be the rule rather than the exception. That would reduce the problem considerably. But the problem is that that breaks code, and without @safe whitelisting stuff instead of blacklisting it, it would probably make the breakage related to fixing @safe holes even worse. So, I very much doubt that we can do it at this point, much as that's really where we want to be.

Please no. Code is born ugly and then gets better and attributed. For scripting and peace of mind, D gets every default right; it's just that some attributes are not really worth it and should be killed imho.


Reply via email to