Ask HN: What is your favorite CS paper?
I&#x27;ve been trying to get it frontpaged because, despite it&#x27;s length, it&#x27;s perhaps one of the most startling papers of this decade. Sadly, it seems like the HN voting gestalt hasn&#x27;t decided to upvote a paper that&#x27;s the CS equivalent of breaking the speed of light:<p>&quot;Generic Top-down Discrimination for Sorting and Partitioning in Linear Time&quot; -&gt;<p><a href="http:&#x2F;&#x2F;www.diku.dk&#x2F;hjemmesider&#x2F;ansatte&#x2F;henglein&#x2F;papers&#x2F;henglein2011a.pdf" rel="nofollow">http:&#x2F;&#x2F;www.diku.dk&#x2F;hjemmesider&#x2F;ansatte&#x2F;henglein&#x2F;papers&#x2F;hengl...</a><p>(if you&#x27;re daunted by an 80 page paper as I am, there is also a talk on it: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=sz9ZlZIRDAg" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=sz9ZlZIRDAg</a>)<p>It is possible, with some proper insight and approaches, to sort general datastructures in linear time on modern computing hardware. The speed limit of sort is O(n) with some extra constant cost (often accrued by allocation). It works by decomposing and generalizing something akin to radix sort, leveraging a composable pass of linear discriminators to do the work.<p>There&#x27;s a followup paper using this to make a very efficient in-memory database that one could easily generalize under something like kademelia and with care I suspect could make something like a better spark core.<p><a href="http:&#x2F;&#x2F;www.diku.dk&#x2F;hjemmesider&#x2F;ansatte&#x2F;henglein&#x2F;papers&#x2F;henglein2011c.pdf" rel="nofollow">http:&#x2F;&#x2F;www.diku.dk&#x2F;hjemmesider&#x2F;ansatte&#x2F;henglein&#x2F;papers&#x2F;hengl...</a><p>I keep submitting and talking about this but no one seems to pick up on it. This paper is crazy important and every runtime environment SHOULD be scrambling to get this entire approach well-integrated into their stdlib.<p>Unsurprisingly, Kmett has already implemented it in Haskell (it generalized neatly under the dual of the applicative+alternative functor): <a href="https:&#x2F;&#x2F;hackage.haskell.org&#x2F;package&#x2F;discrimination" rel="nofollow">https:&#x2F;&#x2F;hackage.haskell.org&#x2F;package&#x2F;discrimination</a>