Previous slide
Next slide

Tecnologia e ideologia

Idealismo e materialismo no desenvolvimento de software

Qual é o custo de se ter uma abordagem idealista na programação de computadores?

Há poucos meses, Casey Muratori, um programador de jogos, abriu uma ampla polêmica no mundo do desenvolvimento de software. Como parte de seu curso sobre programação “orientada a desempenho”, Muratori publicou um vídeo aberto (seu curso é fechado apenas para assinantes) intitulado “Código limpo, desempenho horrível” (“Clean code, horrible performance”, em inglês). No vídeo, o engenheiro de software apresentou alguns exemplos de abordagens consideradas “boas práticas” por um amplo setor dos desenvolvedores, e demoliu um a um os argumentos de porque essas seriam boas abordagens demonstrando seu impacto sobre o desempenho dos programas em que elas resultam.

O vídeo ocasionou uma enxurrada de críticas nas redes sociais. Os defensores do “código limpo”, método ao programador Robert C. Martin, autor de livro homônimo, empunharam seus teclados e foram ao Twitter atacar Muratori como se fosse um herege, como se a sua posição fosse um consenso.

Não vou reproduzir aqui a discussão quase que unilateral, em grande medida dogmática. Um ponto interessante foi que Martin e Muratori tenham até se encontrado para debater e o proponente do código limpo mostrou-se muito mais flexível que seus fiéis seguidores. A discussão, porém, revelou o cerne do problema, de caráter metodológico.

O código limpo defende sua efetividade com argumentos como legibilidade e manutenibilidade do código-fonte. Se o primeiro é completamente subjetivo, o segundo é praticamente impossível de medir. Os mais religiosos abraçaram elevaram a ideologia ao ponto que discutem a “beleza” ou “elegância” do código-fonte.

O que sustenta, em parte, essa tese é que o “código-fonte é lido dez vezes mais do que é escrito”, então devemos otimizá-lo para maior legibilidade e simplicidade. O problema, porém, é que não há um consenso sobre o que seria um programa legível e simples.

Do lado dos proponentes do desempenho, porém, está algo concreto. Um programa bom é aquele que executa suas tarefas o mais rápido possível. É um programa não otimizado para os programadores que neles trabalharam – se é que isso é possível ou desejável -, mas otimizado para seus usuários. E se códigos-fonte são lidos muito mais vezes do que são escritos, os programas que geram são executados muitas e muitas mais vezes do que seus códigos-fonte são lidos.

O papel fundamental da tecnologia de ponta na economia moderna e, particularmente, do software elevou o programador a um patamar superior em relação aos demais trabalhadores assalariados. O prestígio (e, naturalmente, a compensação financeira) trouxe consigo uma ideologia que, na prática, os coloca acima dos próprios usuários dos sistemas que desenvolvem. Como se o código-fonte fosse um fim em si e o programa por ele gerado fosse um mero efeito colateral.

Muratori buscou trazer os desenvolvedores de software de volta ao mundo real. Um mundo onde o código-fonte é compilado por programas, transformado em instruções que serão executadas num processador, que interagirão com chips de memória e com dispositivos de armazenamento como discos rígidos. O mundo real deve ser considerado na elaboração dos programas para que eles cumpram de forma adequada suas tarefas. Sua tese é corroborada pelos próprios monopólios de tecnologia que, em inúmeras postagens em seus blogues de tecnologia, discorreram sobre a reescrita de seus sistemas para melhor desempenho argumentando que um menor tempo de resposta aumenta sua receita. Nada mais natural que um usuário satisfeito com o sistema que usa gere mais receita para seu fornecedor.

Podemos tecer críticas a alguns dos argumentos de Muratori, apresentados não no curto vídeo que deu início à polêmica, mas em outras palestras e artigos por ele escritos. Parece haver no autor um saudosismo, ou uma glorificação do trabalho, às vezes tediosos e repetitivo, de transformar um programa mal escrito, de baixo desempenho, num de qualidade superior. Esse trabalho pode e deve ser melhorado através da criação de melhores ferramentas de trabalho que orientem o programador. E não, não necessariamente falo dos geradores de texto como GPT, que já critiquei nesta coluna apontando-o como uma solução de força bruta para as limitações das ferramentas que nós programadores usamos. Isso para não mencionar como a “inteligência artificial” é uma máquina de reprodução dos erros mais absurdos cometidos por programadores.

De qualquer forma, como programador e como marxista, não posso deixar de admirar a abordagem materialista de Muratori. Também não há como não perceber a concretude de suas críticas quando processadores melhoraram seu desempenho uma ordem de magnitude nos últimos dez anos enquanto os programas que usamos estão estagnados quando não são ainda mais lentos. A decadência é visível, e é fruto do idealismo que se apoderou da nossa categoria privilegiada de profissionais.

Gostou do artigo? Faça uma doação!

Rolar para cima

Apoie um jornal vermelho, revolucionário e independente

Em tempos em que a burguesia tenta apagar as linhas que separam a direita da esquerda, os golpistas dos lutadores contra o golpe; em tempos em que a burguesia tenta substituir o vermelho pelo verde e amarelo nas ruas e infiltrar verdadeiros inimigos do povo dentro do movimento popular, o Diário Causa Operária se coloca na linha de frente do enfrentamento contra tudo isso. 

Diferentemente de outros portais , mesmo os progressistas, você não verá anúncios de empresas aqui. Não temos financiamento ou qualquer patrocínio dos grandes capitalistas. Isso porque entre nós e eles existe uma incompatibilidade absoluta — são os nossos inimigos. 

Estamos comprometidos incondicionalmente com a defesa dos interesses dos trabalhadores, do povo pobre e oprimido. Somos um jornal classista, aberto e gratuito, e queremos continuar assim. Se já houve um momento para contribuir com o DCO, este momento é agora. ; Qualquer contribuição, grande ou pequena, faz tremenda diferença. Apoie o DCO com doações a partir de R$ 20,00 . Obrigado.

Apoie um jornal vermelho, revolucionário e independente

Em tempos em que a burguesia tenta apagar as linhas que separam a direita da esquerda, os golpistas dos lutadores contra o golpe; em tempos em que a burguesia tenta substituir o vermelho pelo verde e amarelo nas ruas e infiltrar verdadeiros inimigos do povo dentro do movimento popular, o Diário Causa Operária se coloca na linha de frente do enfrentamento contra tudo isso. 

Diferentemente de outros portais , mesmo os progressistas, você não verá anúncios de empresas aqui. Não temos financiamento ou qualquer patrocínio dos grandes capitalistas. Isso porque entre nós e eles existe uma incompatibilidade absoluta — são os nossos inimigos. 

Estamos comprometidos incondicionalmente com a defesa dos interesses dos trabalhadores, do povo pobre e oprimido. Somos um jornal classista, aberto e gratuito, e queremos continuar assim. Se já houve um momento para contribuir com o DCO, este momento é agora. ; Qualquer contribuição, grande ou pequena, faz tremenda diferença. Apoie o DCO com doações a partir de R$ 20,00 . Obrigado.

Quero saber mais antes de contribuir

 

Apoie um jornal vermelho, revolucionário e independente

Em tempos em que a burguesia tenta apagar as linhas que separam a direita da esquerda, os golpistas dos lutadores contra o golpe; em tempos em que a burguesia tenta substituir o vermelho pelo verde e amarelo nas ruas e infiltrar verdadeiros inimigos do povo dentro do movimento popular, o Diário Causa Operária se coloca na linha de frente do enfrentamento contra tudo isso. 

Se já houve um momento para contribuir com o DCO, este momento é agora. ; Qualquer contribuição, grande ou pequena, faz tremenda diferença. Apoie o DCO com doações a partir de R$ 20,00 . Obrigado.