<story><title>Rob Pike&apos;s Rules of Programming (1989)</title><url>http://users.ece.utexas.edu/~adnan/pike.html</url></story><parent_chain><item><author>winterlight</author><text>Ironically, in that situation, using a list might end up being more efficient due to cache locality. Or not. That&amp;#x27;s why measuring is so important, since performance can be a very counterintuitive subject. Hard-data should always prevail over theory and guesswork.</text></item><item><author>whack</author><text>Rule 6: Every well-intentioned rule will be bastardized and used to justify horrible code.&lt;p&gt;Foo: &lt;i&gt;&amp;quot;Hey, this 10000-element collection, which we do repeated lookups on... why are we using a list and not a HashSet?&amp;quot;&lt;/i&gt;&lt;p&gt;Bar: &lt;i&gt;&amp;quot;Because lists are so much simpler than a HashSet. Let&amp;#x27;s just KISS&amp;quot;&lt;/i&gt;&lt;p&gt;Foo: &lt;i&gt;&amp;quot;But... doing repeated lookups on a 10k sized list is so much slower than just using a HashSet!&amp;quot;&lt;/i&gt;&lt;p&gt;Bar: &lt;i&gt;&amp;quot;Oh really? Have you profiled the entire application, and measured the latency impact caused by this decision? Come back to me once you&amp;#x27;ve done so, and until then, we&amp;#x27;re not going to tune for speed.&amp;quot;&lt;/i&gt;</text></item></parent_chain><comment><author>kristopolous</author><text>Bad practitioners in any field crudely invoke and naively apply a trite toolbox of mantras. Detached from reality and driven by insecure ego, they become the problem by using magical thinking from authoritarian logic and delude themselves of the reality of what they are actually doing.&lt;p&gt;In any skill, people can fall prey to cults of myth and mysticism as they merit based on adherence to orthodoxy rather than suitability. Programming is no different and sometimes it&amp;#x27;s hard to hear anybody think over the mooing of all the sacred cows.</text></comment>
<story><title>Rob Pike&apos;s Rules of Programming (1989)</title><url>http://users.ece.utexas.edu/~adnan/pike.html</url></story><parent_chain><item><author>winterlight</author><text>Ironically, in that situation, using a list might end up being more efficient due to cache locality. Or not. That&amp;#x27;s why measuring is so important, since performance can be a very counterintuitive subject. Hard-data should always prevail over theory and guesswork.</text></item><item><author>whack</author><text>Rule 6: Every well-intentioned rule will be bastardized and used to justify horrible code.&lt;p&gt;Foo: &lt;i&gt;&amp;quot;Hey, this 10000-element collection, which we do repeated lookups on... why are we using a list and not a HashSet?&amp;quot;&lt;/i&gt;&lt;p&gt;Bar: &lt;i&gt;&amp;quot;Because lists are so much simpler than a HashSet. Let&amp;#x27;s just KISS&amp;quot;&lt;/i&gt;&lt;p&gt;Foo: &lt;i&gt;&amp;quot;But... doing repeated lookups on a 10k sized list is so much slower than just using a HashSet!&amp;quot;&lt;/i&gt;&lt;p&gt;Bar: &lt;i&gt;&amp;quot;Oh really? Have you profiled the entire application, and measured the latency impact caused by this decision? Come back to me once you&amp;#x27;ve done so, and until then, we&amp;#x27;re not going to tune for speed.&amp;quot;&lt;/i&gt;</text></item></parent_chain><comment><author>anarazel</author><text>&amp;quot;Lists&amp;quot;, presumably referencing a linked list, have horrible cache locality. You were thinking of an array?</text></comment>