Código eficiente ainda é importante

Estou utilizando o Google App Engine para desenvolver alguns projetos e, no processo de aprendizado do seu funcionamento e seu sistema de cobrança, me vi pensando na eficiência do código que estou escrevendo.

Código FonteDepois que hardware virou commodity, no sentido de que se tornou muito barato e sem muita diferenciação, código ruim e ineficiente deixou de ser importante para muita gente. Muitos programadores simplesmente desenvolveram a mentalidade de que podem fazer qualquer código “monstro” que o hardware para dar conta disso é mais barato do que melhorar o código. E em parte isso é verdade, pois código bem feito requer programadores bons que não cobram barato.

Mas ultimamente alguns novos conceitos de plataforma podem fazer com que isso mude, coisas como Cloud Computing e Virtualização estão colocando a qualidade e eficiência do código em evidência novamente.

A partir do momento que sistemas como Google AppEngine, Amazon EC2 e Windows Azure (entre outros) permitem que você pague somente pelo poder computacional que utiliza e permitem que suas aplicações cresçam sem com que você se preocupe com o hardware em que sua aplicação roda, as preocupações se voltam novamente para a eficiência do software ao invés do hardware. Principalmente porque isso é o que vai definir se sua aplicação vai ter um alto custo de manutenção ou se você vai na verdade economizar por estar utilizando estas plataformas.

Mas não é somente nesses casos que a eficiência do código é importante, as tecnologias de Virtualização já estão bem difundidas e muitas empresas estão consolidando sua estrutura computacional (servidores e datacenters) em cima disso. Então se um sistema pode rodar em cima de 5 computadores ao invés de 20, isso é economia de dinheiro e energia.

E eu não separei energia de dinheiro sem um motivo. O fato dessas estruturas computacionais economizarem engergia é muito importante do ponto de vista ambiental. Muito se fala hoje em TI Verde e iniciativas que visam diminuir o impacto que a tecnologia tem causado na natureza. Logo, já estamos começando a escutar o termo “código verde” para definir software que é criado com foco na eficiência e na diminuição do consumo de recursos.

Não que não exista preocupação com a eficiência do código em sistemas e sites atualmente, mas normalmente isso é deixado por último e somente quando os problemas surgem é que os desenvolvedores se preocupam com isso. Mas com as tendências de computação em nuvem e SaaS (Software como um Serviço), isso deve ser pensado desde o início.

Quem sabe não deixaremos de encontrar coisas como:

SELECT * FROM users WHERE 1=1