A Plea for Lean Software (1995) [pdf]
I don&#x27;t really buy the core premise that &quot;Enhanced user convenience and functionality supposedly justify the increased size of software, but a closer look reveals these justifications to be shaky&quot;.<p>Users can still choose to use vi, or emacs, or textpad, or whatever stripped-down, fast, minimalist software they prefer; the old stuff hasn&#x27;t gone away. Meanwhile, my IDE re-compiles&#x2F;re-parses my program as I type, and tells me immediately if there are errors. I choose to use the bigger, &quot;slower&quot; program because it makes me dramatically more productive. Sure, input latency might not be as good as a barebones editor, but that cost more than pays for itself (as always, for me -- YMMV).<p>I can appreciate the aesthetic desire for a lean, minimal program, but to ignore the very real productivity benefits that come from tolerating larger programs is, I think, myopic.<p>This comes up around here a lot in the context of slow web pages; a very important thing to note that I think is often overlooked is that it&#x27;s not just the user&#x27;s productivity that matters. If developers have to spend 2x the time optimizing their code to fit in a limited memory allocation, then that&#x27;s 2x the cost to the consumer for the same amount of features (or 1&#x2F;2 the features for the same price). If speed&#x2F;performance is a feature that your customers want to pay for, they will let you know. If it&#x27;s not, then your competitor will eat your lunch by building more features  that users actually care about, while you optimize your existing feature-set.<p>Programs are bounded by &quot;feels slow&quot; on one side, and &quot;expensive to optimize further&quot; on the other. If 99.9% of your users (i.e. the lay users, excluding the experts in the HN crowd) don&#x27;t perceive your program&#x2F;page to be slow, why would you optimize further? Sure, if you&#x27;re Google, a few ms faster can equate to millions of dollars of revenue, but that&#x27;s not the fitness landscape that most software evolves in.