On 4/10/15 4:26 PM, smaug wrote:
I'd say that is rather painful for reviewers, since both Move() (I
prefer .swap()) and lambda hide what is actually happening to the refcnt.

Wanna ban copy construction? ;)

Higher-level constructs inherently "hide" something, but I disagree they make things harder to understand and read, quite the opposite.

And nsRefPtr's copy constructor is probably the safest part of that class.

So easy to forget to use nsCOMPtr explicitly there.

We should emphasize easy-to-read-and-understand code over fast-to-write.

I agree with your emphasis, however I draw the opposite conclusion.

The death to readability is the boilerplate that lambdas replace IMHO.

I find our existing runnable code hard to reason about because I have to jump between indirections to lots of disjunct classes, just to follow the flow of code, not to mention all the boiler plate needed simply to pass values forward.

I find a parallel here with callbacks vs promises in JavaScript. The Promise chaining pattern relies on inline function definitions to make the flow of code match the flow of reading, making it easier to reason about and review.

.: Jan-Ivar :.

-Olli




- Seth



_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to