Isso pode parecer uma pergunta estranha para alguns de vocês.
Eu sou um programador Java amador. Eu desenvolvi vários jogos, um programa de IA que cria música, outro programa para pintura e coisas semelhantes. Isso é para dizer que tenho experiência em programação, mas não no desenvolvimento profissional de aplicativos de negócios.
Eu vejo muita conversa neste site sobre desempenho. As pessoas costumam debater qual seria o algoritmo mais eficiente em C # para executar uma tarefa ou por que o Python é lento e o Java é mais rápido, etc.
O que estou tentando entender é: por que isso importa?
Existem áreas específicas da computação nas quais vejo por que o desempenho é importante: jogos, onde dezenas de milhares de computações acontecem a cada segundo em um loop de atualização constante ou sistemas de baixo nível nos quais outros programas dependem, como sistemas operacionais e VMs, etc.
Mas, para o aplicativo de negócios normal e de alto nível, por que o desempenho importa?
Eu posso entender por que isso importava, décadas atrás. Os computadores eram muito mais lentos e tinham muito menos memória; portanto, você precisava pensar cuidadosamente sobre essas coisas.
Hoje, porém, temos tanta memória de sobra e os computadores são tão rápidos: isso realmente importa se um algoritmo Java específico é O (n ^ 2)? Será que realmente fará diferença para os usuários finais desse aplicativo comercial típico?
Quando você pressiona um botão GUI em um aplicativo comercial típico, e nos bastidores, ele invoca um algoritmo O (n ^ 2), nos dias de hoje na computação moderna - você realmente sente a ineficiência?
Minha pergunta está dividida em duas:
- Na prática, hoje em dia o desempenho importa em um programa de negócios normal típico?
- Nesse caso, dê-me exemplos reais de lugares em um aplicativo em que o desempenho e as otimizações são importantes.