<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Mar 24, 2016 at 11:19 AM, David Lonie <span dir="ltr"><<a href="mailto:david.lonie@kitware.com" target="_blank">david.lonie@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div>I wouldn't consider revamping the Insert behavior (or just removing the method) to be polish -- I'd consider it a bugfix. Array insertion has a well-defined meaning to developers, and this break from convention is a problem for new developers.</div><div><br></div><div>They'll expect insert to insert, but instead it just sets. Their code looks correct, and they'll have a hell of a time trying to figure out why it isn't working at runtime until they either (a) start digging through documentation for what should be self-documenting APIs, or (b) step through the code with a debugger. At this point, they've wasted time tracking down this unconventional behavior just to find that VTK's methods don't behave as expected. It's incredibly frustrating to review your own code countless times trying to figure out what you did wrong, when in reality it's an external toolkit that's broken -- and it's worse when the brokenness is known and intentional.</div></div></div></div></blockquote><div><br></div><div>This sums up my feelings on this particular API.</div><div><br></div><div>I'm all for adding new algorithms to VTK, but over the years I've seen algorithms go into VTK with buggy, unstable, and even incorrect implementations.  A poorly-understood API can easily lead to bugs.  The vtkDataArray::Insert() methods are easily misunderstood (and IMHO unnecessary) so they should be deprecated.</div><div><br></div><div>Personally, I wish that a lot more attention was paid to the bugtracker.  Stability/correctness of algorithms is very important to me (but, yeah, speed is important too, and everyone knows that I've written crazy code at times in order to save a few CPU cycles).</div><div><br></div><div> - David</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div></div></div>