Acessando o site da ACM Queue hoje topei com este post fenomenal do Kode Vicious: “Know your algorithms” (https://queue.acm.org/detail.cfm?id=3310152) : temos uma questão essencial sobre escalabilidade aqui que é a comparação do custo de desenvolvimento vs custo de hardware.
Quando você olha para jogos mais antigos, tais como os que víamos, por exemplo, no Nintendo (NES) não há como não se maravilhar com o tanto que se conseguia fazer com tão pouco: basta observar que a esmagadora maioria dos jogos tinha menos de 1 Mb de tamanho (a esmagadora maioria tinha menos de 256 kb). Hardware, especialmente memória, era cara.
Com o passar do tempo o hardware foi barateando, memória começou a ficar bem mais acessível e a mão de obra encareceu. Então observa-se a aplicação da lei de Moore (https://pt.wikipedia.org/wiki/Lei_de_Moore) na qual você desenvolve um aplicativo meia boca sabendo que sairá uma versão mais nova do hardware há a chance real do sistema funcionar melhor: e funcionava.
Então hoje temos estes jogos com gigas de tamanho, por exemplo, assim como sistemas operacionais “giganormes” que te fazem pensar: caramba, será que este negócio não tá mal otimizado?
E no final das contas tudo se resume, e sairia bem mais barato e fácil se houvesse maior atenção ao código, aos algoritmos que empregamos em nossos sistemas que, inclusive, poderiam ser usados até mesmo para escolher melhor hardware, o que será fundamental agora que, ao que tudo indica, estamos chegando ao final da Lei de Moore (https://www.technologyreview.com/s/601441/moores-law-is-dead-now-what/).
Gostaria então de saber a opinião de vocês: estamos realmente otimizando nossos sistemas ou será que nos tornamos preguiçosos demais pra isto graças ao hardware que temos hoje? Esta festa está pra acabar? Se sim, quem sobreviverá?
ps: um texto fenomenal a respeito é este, Disenchantment - http://tonsky.me/blog/disenchantment/