On Tuesday, 7 June 2016 at 20:41:08 UTC, Walter Bright wrote:
The point being that a culture of "best practices" does arise and evolve over time, and professional programmers know it.

Sure, that's one of the big advantages C++ has over D: people have that institutional knowledge.

But, two important questions:

1) You criticize C++ because it isn't good enough - programmers are lazy and just because you can do it right doesn't mean they will. The right thing also needs to be the easy thing.

D's attribute spam is not the easy thing. And there's no apparent punishment for doing it "wrong" - everything works equally well for the author. It is only when a third party comes in and tries to slap the attribute on that it becomes an issue.

2) What makes you so sure @nogc will actually be part of the best practice? I haven't done a comprehensive study, but my impression so far is that it is very rarely used: the biggest win is being inferred in templates... which seems to imply that people aren't caring enough to actually write it out.

Would you want to use a library where the maintainers refuse to use @nogc even if they aren't using the gc?

I think you underestimate the cost of @nogc (and @safe, and pure, and nothrow) to the library author. It is littering their code with something they don't use themselves (and thus easy to forget to put there on new functions) and don't derive any direct benefit from.

Moreover, it limits their flexibility in the future: once a function is published with one of those attributes, it is part of the public interface so the implementation cannot change its mind in the future. That might be a good thing to the user begging for verified @nogc or whatever, but to the library author it is another cost for them to maintain.


Though, the apathy factor I think is bigger than the maintenance factor: I don't write it in my code because I just don't care. I have had only one user ever complain too... and he seems to have changed his mind by now and no longer cares either (probably because a critical mass of library authors still just don't care, so you can't realistically slap @nogc @safe on that much anyway).

Reply via email to