Na verdade, este não é um problema técnico, mas um problema do cérebro humano. Isso pode surpreendê-lo, mas deixe-me explicar. Eu tenho uma boa base para o que eu digo.
Parte do problema é como as atualizações e patches de software são aplicadas, mas não acho que esse seja o núcleo do problema.
As máquinas de hardware realmente ficaram significativamente mais rápidas ao longo dos anos, mas a capacidade do software para carregá-lo aumentou a uma taxa ainda mais rápida, dando a percepção e a realidade de que algumas coisas são mais lentas, como são.
Por exemplo, minha primeira caixa Z-80 tinha uma velocidade de clock de 1 mega hertz. Agora, minha plataforma de desenvolvimento roda a 2,66 ghz, ou mais de 2000 vezes mais rápido. Não me lembro exatamente, mas todo o CPM se encaixa em cerca de 16kb. Agora, o Windows é quem sabe o tamanho, mas muito, muito maior. Ele usa muitas camadas de abstração que realizam coisas incríveis de uma maneira mais geral, mas essas camadas afetam o desempenho.
Deixe-me voltar ao cérebro humano. O que é bem entendido é que, por muitos anos, os engenheiros de software disseram e acreditavam, por algum bom motivo, que o hardware seria cada vez mais rápido e, portanto, o software não precisava ter cuidado com os problemas de otimização. Então, os programadores fizeram as coisas para que as coisas funcionassem rapidamente e com o custo da velocidade, ... pensando que o pessoal do hardware cuidaria desse problema. Portanto, as atualizações e correções são feitas com o pensamento de que são temporárias, ou seja, de curto prazo.
É: curto prazo, micro-pensamento, a longo prazo, problema macro.
Li um livro interessante, há muitos anos, em que alguns cientistas expuseram esse problema de pensamento humano de curto prazo versus longo prazo, e fizeram algumas experiências em uma ampla gama de seres humanos para ver como eles fazem essas trocas. Seu livro é New World New Mind, e os autores são Paul Ehrlich e Robert Ornstein. Eu o descreveria como o livro mais importante que li nos últimos 20 anos, porque forneceu uma estrutura sólida para a maneira como resolvemos o problema.
O que eles observaram foi que o cérebro humano evoluiu em um momento em que tomar decisões de curto prazo fazia sentido. Viva o momento e o dia, mas não pense muito no futuro. Simplesmente não valia a pena. Portanto, nosso senso de coisas que costumamos tomar para tomar decisões é uma parte muito antiga do cérebro e não é adequada para muitos problemas modernos. E o cérebro não teve tempo realista de evoluir, pois o mundo mudou rapidamente com o crescimento da população e o impacto da tecnologia nas coisas.
O que o professor Ehrlich e Ornstein descobriram foi que Ph.D. muito inteligentes e bem-educados, mas também zeladores, cometeram os mesmos erros quando apresentaram problemas de curto prazo versus problemas de longo prazo. Não é algo que geralmente pensamos ser o caso.
Um exemplo muito bom e convincente de como esse mesmo problema está ocorrendo no mundo de hoje não tem a ver com o ambiente de hardware, mas é o irmão mais velho de todo o ambiente em que vivemos. Nós, humanos, geralmente cometemos o erro de viver hoje, no momento, mas a realidade é que o aquecimento global está sobre nós exatamente porque não permitimos ou tomamos medidas para lidar com isso. É a lentidão do hardware, pelo problema do software, novamente, mas em um contexto diferente.
Ornstein e Ehrlich sugeriram que poderíamos tomar decisões mais corretas baseando nossa decisão não em nosso instinto, mas em dados e estatísticas. Por exemplo, se um engenheiro de software tivesse estatísticas de quão rápido seu software estava inchando em relação à velocidade do hardware, eles poderiam tomar melhores decisões sobre o que incluir, o que deixar de fora e quanto otimizar algoritmos. Em outras palavras, se eles usassem dados reais para tomar decisões, em vez de seu instinto.
Obrigado pela boa pergunta. Às vezes, as perguntas simples são as melhores que eu penso. isso me deu a oportunidade de considerar isso de um novo ângulo. Eu nunca tinha visto o paralelo entre a questão do software de hardware no contexto humano.