Whenever I bring up the topic of performance and speed of software, I used to get "Pre-mature optimization is the root of all evil", but in reality, companies are spending billions just to squeeze an additional 1-2% improvement in compilers optimizations,browser engines, kernels and processors.
Speed matters. I CAN perceive the latency of using an SPA vs using a native application. I notice. the diff. between executing a GNU binary vs running a js based script.
> "Pre-mature optimization is the root of all evil"
I agree with your post. We as a community have completely subverted the meaning of this quote. It is originally about the need to profile your code, and about how programmers instincts often fail them, making them optimize the wrong things.
But when it mixed with Startup Culture it morphed into "don't worry about speed, just write whatever shitty code comes into your head and only optimize if a customer complains... scratch that, let's not listen to customer complaints because we know better".
Like you said, some companies with good products and some good developers are following what Knuth had to say and are constantly optimizing for speed (but after profiling). Others are engaged in a race to the bottom and are trying to convince everyone else that careless engineering is somewhat better.
Its easy. You deliver the feature and then optimize its performance.
What they dont say is that there is never an end to set of feature requests you will get. No matter how many crappy, unusable features you throw in, there will always be a request to tweak this , tweak that.....
I think you and I interpret "premature optimization is the root of all evil" quite differently.
To me it doesn't mean you should write slow code, but rather that you shouldn't omptimise a piece of code before:
1. You actually got it working and you know you need it (so you don't waste your time).
2. You profiled the system and you know the code you are optimising is actually making things slow, and it being slow matters.
This applies to every metric, not just performance. For example: don't optimise your top of the funnel when your bottleneck is actually conversion.
So measure, and then optimise. Don't optimise prematurely.
Speed matters. I CAN perceive the latency of using an SPA vs using a native application. I notice. the diff. between executing a GNU binary vs running a js based script.