Writing code that breaks if someone changes the type of the collection is not a bug in any sense that I ever saw the word used in. At most it&#x27;s a failure to make the code as pliable as one might desire it to be - but the author is not very likely to value the ability to easily replace an array with a list (it appears he&#x27;d be concerned about the performance implications and would want to review all the relevant code anyway.)<p>Also in reality making sure that your arrays can be replaced with lists means you can&#x27;t store indexes into the array but instead you must store iterators, which sucks when you have to declare them (auto won&#x27;t work in many contexts and typedef will expand into the ugly underlying type in many contexts), and sucks when you have to print them (&quot;5&quot; or &quot;342&quot; reads better than whatever garbage you&#x27;ll have to resort to when printing out an iterator, and it persists better between program runs and across platforms, too.) So if I have an array&#x2F;vector I&#x27;d rather not try to pretend that it&#x27;s a &quot;non-ordered collection&quot; until I absolutely ought to use random access; I&#x27;d just treat it as an array&#x2F;vector from the start.<p>So I guess what I&#x27;m trying to say is, not only is it not a bug but the attitude of people who write such non-bugs has many advantages.<p>(And BTW caring about performance is not the main point. A nice thing about your typical dynamic language is that there&#x27;s not much gratuitous polymorphism. You get a few basic collection types and you use these and most code doesn&#x27;t jump through hoops to be able to replace the standard collection type with some polymorphic replacement only satisfying a subset of the interface. So-called &quot;type-rich&quot; programming gets gnarly, I prefer &quot;type-poor&quot; on any day. Which isn&#x27;t the main point, either, the main point is that things that work nicely in practice (like treating arrays as arrays) matter more to me than things that sound &quot;right&quot; from an abstract viewpoint (like being able to replace your collection types with other types.) And calling it a &quot;bug&quot; is, I guess it kinda bothers me and hence the wall of text...)