
On Sun, Nov 11, 2012 at 11:59 AM, Doug McIlroy
So it seems to be with Haskell Platform, which aims to include "all you need to get up and running"--"an extensive set of standard libraries and utilities with full documentation." I get the impression that the Platform is bedeviled by the same prospect of almost unfettered growth.
That's an interesting story, but I think the analogy is fundamentally broken. So the pump needed someone to watch it, needed spares, needed multiple people for multiple shifts, then they needed mechanics and motor pools and all their families came along etc until finally it was a little town? Well, OK. But there's no such effect in software libraries - if I add in a bytestring library to the HP, I don't wind up needing a MS Excel shim library to service it! When I added in some popular core library like bytestring, there's no expansionary loop - I don't find myself needing to add in a dozen libraries just to make bytestring run better. Bytestring already runs fine. Its dependencies are all already in the HP; the additional complexity for adding Bytestring is just... Bytestring. The arrow of dependency points the other way than in your story - if I need a MS Excel shim library, maybe I'll need the bytestring library. It's a pyramid, not a repeatedly cycling positive feedback loop. (Incidentally, Geoffrey West's city research suggests that cities benefit from sublinear scaling of most infrastructure; so "barely missing criticality" is not at all surprising.) -- gwern http://www.gwern.net