Dan,

Thanks for the feedback.  I appreciate it.

I'm still not convinced that pulling the dynamic casts out of the
getter/setter pair is better.

You talk about performance penalties of dynamic casting.  But your
profiling shows that dynamic casting took about 1% of the processing
time.  Even if you could reduce dynamic casting by 90% (which seems
unlikely), you'd only reduce execution time by 0.9%, which seems pretty
insignificant.

The tradeoff of having people know about dynamic casting and using it
properly needs to be matched with people not needing to know about
dynamic casting and being able to ignore it.  It seems to me that unless
there is a significant mistake that is made by code that doesn't know
about the dynamic cast, it's better off to hide it.  In fact, it seems
to me that it would be possible (and maybe preferable) to put necessary
error checking once in the setter/getter, rather than having to recreate
it multiple times throughout the code base.

If dynamic casting were taking up 50% of the process time, or errors in
using dynamic casting were responsible for large numbers of bugs, I
might feel different.  But to me, the benefits I understand from your
explanation seem to be not worth the cost of having dynamic casts show
up in 21 different files.

As I said before, I'm not asking for a reversion.  I think I just have a
different tradeoff value model than you have.

Thanks for your explanation,

Carl


https://codereview.appspot.com/344010043/

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to