Sim , eles são 'relativamente' menos importantes em uma ampla indústria. O editor de texto pode ser 'rápido o suficiente' e pode não precisar de muitas melhorias. Grande parte do esforço de TI é garantir que o componente A escrito em Java funcione com o componente B escrito com C se comunique corretamente por meio da fila de mensagens gravadas em Cobol (ou algo assim), ou para colocar o produto no mercado etc.
Além disso, a arquitetura ficou complicada. Quando você tinha processadores simples e antigos, onde tinha 1 instrução por ciclo e escreveu na montagem, as otimizações foram 'fáceis' (você só precisava contar o número de instruções). Atualmente, você não possui um processador simples, mas um processador totalmente pipeline, superescalar e fora de ordem, com renomeação de registro e cache de vários níveis. E você não escreve em assembly, mas em C / Java / etc. onde o código é compilado / JIT (normalmente, para melhor codificar, você ou eu escreveríamos em assembly) ou em Python / Ruby / ... onde o código é interpretado e você é separado por vários níveis de abstração da máquina. As microoptimalizações são difíceis e a maioria dos programadores obteria efeito oposto.
Não , eles são sempre tão importantes em pesquisa e em termos "absolutos" . Há áreas em que a velocidade é importante, pois elas operam com grande quantidade de dados. Nesta escala, as complexidades são importantes, como mostra o exemplo de Pavel.
No entanto, existem outros casos - descer dos algoritmos ainda é uma opção escolhida quando a velocidade é importante (HPC, dispositivos incorporados etc.). Você encontrará em muitas universidades grupos especializados em compiladores e / ou otimização de software. Por exemplo, uma troca simples de pedidos de loop pode obter uma aceleração de mil vezes apenas porque utiliza cache de maneira eficiente - embora possa ser um exemplo limítrofe, a diferença de CPU e memória cresce 1000 vezes nos últimos 30 anos. A arquitetura de computadores também faz parte do CS. Portanto, muitas das melhorias na velocidade da computação são de fato parte do campo geral do CS.
No lado industrial - quando você tem um cluster de HPC, a velocidade é importante porque um único programa pode ser executado por dias, meses ou anos. Não apenas você precisa pagar a conta de luz, mas também a espera pode custar dinheiro. Você pode jogar o dobro do hardware, mas US $ 700 milhões dificilmente pode ser considerado uma mudança de bolso para todas as empresas, exceto as maiores - nesses casos, os programadores são a opção mais barata e, se reescrever o programa em um novo idioma significar apenas uma aceleração 'pequena' - eles podem considere isso.
Velocidade também pode significar melhor UX. Muitas revisões de sistemas operacionais de telefones celulares afirmam qual é 'mais rápido' e, embora possa ser feito por 'truques', é certamente uma área de estudo. Além disso, você deseja acessar seus dados mais rapidamente e rapidamente fazer o que precisa. Às vezes, significa que você pode fazer mais - em jogos você tem 0,017s para fazer tudo e quanto mais rápido você é, mais doces você pode colocar.