lol :D hardware improvement is how we scaled, hardware is cheaper than a dev that's why we need 300 servers and a cloud to do things.
Functional programming the second (third?) uprising is because we don't care about imperative memory management anymore.
How many of us sit down and think how the program reacts on all levels ? none what do we do ? we add another server ... "load goes up ? add another server"
a modern senior dev, in austria, costs in a classic employment about ~40€ an hour with taxes and social security etc. that's around 3200 € gross per 160hours which is the equivalent of 40hours week. (for the dev, the company pays double)
so if the bug is not reducing the throughput of my profit margin it's cheaper to just add another server which costs around 40€ a month so I can have 80 Months of server power and let my programmer focus on "important business"-tasks.
this is why companies can scale not because they "get the smartest" (they all try for sure) but because they can compensate with hardware.
We don't tend to think about state representations in memory and how to efficiently do stuff, "the compiler will manage it" and that's okay.
It's a perfectly valid thing as an application programmer to say "I like to work with the abstract problem, not the realities it implicates" but lets be real ... we only can do this because hardware got so cheap....