You forgot a couple options:<p>3) Available code<p>4) Familiar code<p>The history of the software industry has basically been 40 years of customers choosing code that exists, solves their problem <i>right now</i>, and doesn&#x27;t make them think too hard about how to use it.  They choose this over correct code (hence, Microsoft) and over fast code (hence, Python&#x2F;Ruby&#x2F;Javascript&#x2F;PHP).<p>FP actually helps you write <i>both</i> fast and correct code.  The problem is that it requires a good deal more planning up-front and more effort to change things when requirements change.  This has usually been a non-starter with the majority of customers: they want software that does what they need it to do, right now, and will continue to do what they need it to if they change their mind.  If it screws up occasionally or makes people wait, that&#x27;s okay, it&#x27;s still faster &amp; more accurate than a human is.