This may seem like an odd question to some of you.
I'm a hobbyist Java programmer. I have developed several games, an AI program that creates music, another program for painting, and similar stuff. This is to tell you that I have an experience in programming, but not in professional development of business applications.
I see a lot of talk on this site about performance. People often debate what would be the most efficient algorithm in C# to perform a task, or why Python is slow and Java is faster, etc.
What I'm trying to understand is: why does this matter?
There are specific areas of computing where I see why performance matters: games, where tens of thousands of computations are happening every second in a constant-update loop, or low level systems which other programs rely on, such as OSs and VMs, etc.
But for the normal, typical high-level business app, why does performance matter?
I can understand why it used to matter, decades ago. Computers were much slower and had much less memory, so you had to think carefully about these things.
But today, we have so much memory to spare and computers are so fast: does it actually matter if a particular Java algorithm is O(n^2)? Will it actually make a difference for the end users of this typical business app?
When you press a GUI button in a typical business app, and behind the scenes it invokes an O(n^2) algorithm, in these days of modern computing - do you actually feel the inefficiency?
My question is split in two:
In practice, today does performance matter in a typical normal business program?
If it does, please give me real-world examples of places in such an application, where performance and optimizations are important.