Executando verificação de segurança...
4

A era do código descartável

Comecei a aprender programação há cerca de um ano e meio.

Quem entra nesse mundo normalmente começa do mesmo jeito: graduação, cursos, aulas, tutoriais, aquela sequência clássica de “aprenda linguagem X em 30 dias”. Parecia um caminho lógico.

Mas muito rápido apareceu um problema.

Os cursos pareciam… lentos. E completamente desalinhados com a realidade.

Explicações longas sobre detalhes de sintaxe, semanas discutindo coisas que uma IA, até mesmo naquele momento, já resolvia.

Parecia que eu estava estudando para algo que já não existia mais.

Demorei um pouco para entender exatamente o que estava errado. Não era falta de conteúdo. Era outra coisa. Uma sensação de que a pergunta principal estava sendo ignorada.

O que exatamente significa programar hoje?


Enquanto isso, algo curioso estava acontecendo no mundo real.

Ferramentas como Claude Code começaram a escrever código útil em segundos. Funções inteiras, APIs, testes, correções...

Não era mais aquela IA que sugeria uma linha de autocomplete.

Era código funcional, quase sem erros, produzido em uma velocidade absurda.

Programadores mais experientes sabem o que isso significa.

Escrever código sempre foi a parte mais cara em termos de tempo humano. Horas pensando, escrevendo, testando, refatorando.

Agora imagine algo que faz isso 10 vezes mais rápido.

Isso faz a gente pensar um pouco...

Se código pode ser produzido quase instantaneamente, por que estamos tratando código como a coisa mais importante do processo?


Essa pergunta começou a me perseguir enquanto eu estudava.

De um lado havia a turma mais “raiz”, olhando para IA como se fosse apenas mais uma moda. Do outro lado apareceu a turma do vibe coding, achando que bastava escrever um prompt mágico e a IA faria tudo sozinha.

Nenhum dos dois lados parecia certo.

Então comecei a fazer um exercício mental simples: e se a IA realmente escrever a maior parte do código?

Não como experimento. Como padrão.

O que sobra para o programador?


A resposta demorou um pouco para aparecer.

Porque a programação sempre foi ensinada da mesma forma: aprender linguagem, aprender frameworks, aprender padrões, escrever código...

Só que existe uma parte do processo que quase nunca aparece nos cursos e graduações de forma séria...

Antes de qualquer código existir, alguém precisa responder perguntas muito mais fundamentais:

  • o que o sistema precisa fazer
  • quais são as regras do negócio
  • quais comportamentos são permitidos
  • quais comportamentos são proibidos
  • quais cenários precisam funcionar sempre

Essa parte é chamada de várias coisas: especificação, arquitetura, PRD, modelagem de domínio.

Mas ela sempre foi tratada como pré-processamento do código.


Aqui, vale lembrar uma curiosidade histórica.

No início da computação, muito código era literalmente descartável.

Pesquisadores escreviam pequenos programas para resolver um problema científico, rodavam uma vez e pronto. O valor estava na resposta obtida, não no código.

Depois veio a engenharia de software e transformou código em algo duradouro. Sistemas complexos, décadas de manutenção, arquiteturas cuidadosamente projetadas.

Durante mais de cinquenta anos foi ensinado a tratar código como infraestrutura permanente.

Só que existe uma pequena diferença agora.

Máquinas escrevem código.


Quando uma coisa pode ser criada instantaneamente, ela deixa de ser escassa.

E quando algo deixa de ser escasso, seu valor muda.

Esse é o ponto central.

O valor não está mais no código.


Se uma IA consegue construir um sistema inteiro a partir de um conjunto de regras, então o ativo mais importante deixa de ser o código final.

Passa a ser, em outras palavras: a especificação do sistema.

Mas ainda falta uma peça.

Porque se o código pode ser recriado a qualquer momento, precisamos de algo que garanta que o sistema continua correto.

Essa peça também já existe.

Ela sempre existiu.

Testes.


Testes automatizados são, na prática, leis físicas do software.

Se os testes passam, o sistema está potencialmente correto.

Não importa se o código foi escrito por um humano, por uma IA, ou regenerado inteiro cinco minutos atrás.

O comportamento esperado permanece?

Não foram criadas novas falhas, bugs, brechas de segurança?


Agora junte as duas peças.

Definição clara do sistema e testes que garantem o comportamento.

Com isso, uma IA pode gerar um projeto inteiro.

Se algo estiver errado, o processo é simples: ajustar as regras, regenerar o código.

Não refatorar.

Regenerar.

Em minutos.


E é aqui que chegamos na conclusão que parece estranha no começo, mas cada vez faz mais sentido.

O código em si pode se tornar descartável.

Ele deixa de ser o produto final e passa a ser apenas uma materialização temporária das regras do sistema.

Como um build.

Ou como um binário compilado.

Algo que pode ser gerado novamente a qualquer momento.


Isso muda completamente o papel do programador.

O profissional mais valioso não será quem escreve código mais rápido.

Será quem entende profundamente:

  • o domínio do problema
  • as regras do sistema
  • os cenários críticos
  • os comportamentos inválidos

E consegue transformar tudo isso em definições claras e testes precisos.

Nesse cenário, a IA escreve o código.

Os testes dizem se o universo está funcionando.

Se algo falha, o código pode simplesmente desaparecer.

E outro nasce no lugar.

A era do código descartável.

Carregando publicação patrocinada...
3

Nesse cenário, a IA escreve o código.
A era do código descartável.

Eu desejo profundamente que você trabalhe com essa mentalidade para o meu concorrente

1
0

Código nunca vai ser descartável. Por que eu digo isso? Porque código sempre será necessário para comunicação com a máquina. IA ainda gera o código. Ainda será necessário entender o que isso faz.

O valor não está mais no código.

O valor nunca esteve no código. Não sei qual raciocino tive para chegar nessa conclusão.

Código é só texto. Literalmente somente isso. A diferença é que é um texto usado para especificar instruções para a máquina. Para isso há tantos processos delicados que não pode ser delegado para um LLM.

Metaprogramação existe a bastante tempo. É literalmente o código que escreve outro código. Isso é até rotineiro para quem cria library em Rust.

Hoje temos algo que faz isso de forma mais flexível, rápido, mas com trade-off claros que é a possibilidade de erro (garantido matematicamente) e os custos elevados.

O valor do profissional sempre foi a capacidade de resolver problemas, entender o produto e não só digitar código. Programador NÃO É DIGITADOR DE CÓDIGO. REPITO, PROGRAMADOR NÃO É SOMENTE DIGITADOR DE CÓDIGO. Esses digitadores não tem valor mais hoje em dia. Antes também não tinha, mas havia espaço para trabalho braçal.

Se uma IA consegue construir um sistema inteiro a partir de um conjunto de regras, então o ativo mais importante deixa de ser o código final

Consegue? IA consegue replicar sistemas inteiros sem garantias de fidelidade de funcionamento correto, mas criar? Já parou para pensar o que é de fato criar algo?

Noticias como "IA recriou o compilador de C em Rust" enaltecendo isso é absurdo, por exemplo. Tudo que foi preciso fazer é pegar algo já criado e transformar em outra coisa. Qualquer um faz, a diferença é que IA faz mais rápido e muito rápido.

Porque se o código pode ser recriado a qualquer momento, precisamos de algo que garanta que o sistema continua correto.

Pode mesmo? Imagina os sistemas embarcados de carros e aviões. Não da para simplesmente recriar essas coisas de forma simples. Estamos lidando com vidas. Desenvolvedores tem vidas nas mãos também. IA pode auxiliar aqui, mas delegar, eu duvido aqui.

Existem áreas como Front-end que podem usar IA pesadamente sem se preocupar muito se IA erra ou não na parte de interface. Lidando com regras de negócio é loucura delegar, mas é inteligente usar como auxilio e te impulsionar.

Se os testes passam, o sistema está potencialmente correto.

Apesar dos testes passaram, não é incomum softwares lançarem como brechas de segurança, memory leak e etc... Em jogos é bem como inclusive testes passarem, mas muita coisa quebrar. Isso é tão comum que ninguém cita isso, apenas assume que tem que ter hot-fix assim que lançar.

Isso é para tudo. Confiar somente em testes não é inteligente. É importante sim, pois isso garante algumas coisas no código, mas nem sempre o comportamento esperado.

Testar código assíncrono ainda é complexo demais. Especialmente aqueles que requerem lidar com dados temporais.

Testar é uma habilidade. Não é só escrever assert() é pronto. Testes inclui além dos automatizados. Dependendo do software, é preciso ter uma equipe somente para isso. IA pode escrever testes e tem que escrever mesmo aqueles que são Boilerplate. Agora testes mais específicos? É jogar roleta russa com IA.

Se algo estiver errado, o processo é simples: ajustar as regras, regenerar o código.

Você esta assumindo que IA irá entregar em algum momento o código funcional sem bugs, mas é impossível. Não tem tal como "regenerar". Primeiro que os custos são astronômicos para issso. Segundo que isso só funciona para projetos bem pequenos.

Tente regenerar o compilador o TypeScript para cada problema que der! Mesmo que faça com módulos específicos, é bem provável que dê problema com outras camadas.

"É só ajustar as regras"... Como você sabe como ajustar algo que não entende? Imagina querer consertar o carro sem entender de carro. Imagina querer mudar a si mesmo sem entender você. Não tem como pedir por algo que você nem sabe que existe ou sabe descrever. Artigos técnicos não usam palavras complicadas colocar efeito, e sim para evitar ambiguidade. Isso requer tanto estudo. Agora na IA, as pessoas acham que podem fazer:

crie um sistema para mim 
o sistema tem que ser seguro
divida em modulos e tudo tem que seguir o clean-code 
teste o código antes 
faça o deploy
beijinhos e obrigado. 

Assim como no exemplo do artigo técnico que citei, é preciso especificar muita coisa sem ambiguidade para a IA ter pelo menos a chance de entregar algo funcional. É probabilístico.

Nesse cenário, a IA escreve o código. Os testes dizem se o universo está funcionando. Se algo falha, o código pode simplesmente desaparecer.

Quase como um conto de fadas essa afirmação. Parece os frameworks para JavaScript.

Vamos ser racionais: IA é muito bom mesmo. Ajuda para cacete em um monte de coisas. Porém esta praticamente se criando uma religão em torno disso.

Isso me lembra alguns jogos de fantasias onde o conhecimento arcano na maior parte das vezes é os fundamentos perdidos com a modernidade do mundo. Onde quem sabe os fundamentos são realmente muito fortes. Da mesma forma, é como se estivessem trocando o processo de aprendizado real pelo o falso. Sem IA, do que essas pessoas são capazes?

0

Entenda que estamos em uma transição. Neste momento, existem pessoas dizendo que não presta, outras dizendo que é o futuro, outras dizendo que precisa ter cuidado pra não gerar porqueira e por aí vai.
O que ninguém fala é que nem o código será mais necessário em breve. Hoje você chama de descartável, mas o sentido de "descartável" ainda não está maduro para você. O "descartável" muito em breve será convertido em "inexistente". Não será necessário criar telas bonitas se sua interface será apenas um comando de voz para uma IA. Não será necessário mil regras, testes etc. se a sua interface será apenas "compre uma camisa parecida com essa mas de uma cor que eu goste".
Ela saberá seu saldo, os valores que você costuma usar, as cores que vc gosta, seu tamanho, seu endereço, seus dados de pagamento... E o detalhe é que a gente já está fazendo isso há um bom tempo: estamos padronizando nossas interfaces no dia a dia. Você não entra mais em 30 sites pra escolher uma coisa. Você entra no mercado livre e deixa ele escolher o mais relevante pra você. Então pra que aprender css, html, js? Não servirá mais. Nossa interação será em um app simples com uma caixa de texto e um botão de microfone.
Eu não vou precisar comprar um sistema que gerencie minhas vendas. Meu cliente vai falar com uma IA que vai vender, meu fornecedor vai vender com uma iA para a minha IA. A transferência é eletrônica. A ia vai emitir a nota. a ia vai chamar um motoboy pra entregar.
Nessa brincadeira, o motoboy é o que mais vai demorar a ser substituído.
Isso, na melhor das hipóteses.
Pq, veja só: se eu não preciso empregar ninguém, como a população vai conseguir dinheiro pra consumir meu produto? Esse assunto está sendo chamado hoje de economia fantasma. Poucas pessoas lucrando absurdamente e ninguém pra consumir.
Sem uma regulamentação pesada, 99,90% estarão completamente F***** muito em breve.

0

Isso é o que me preocupa. Antes tinha bem menos coisas tentadoras para fazer errado e a pessoa sempre fazia, agora tem algo extremamente tentador. Eu comparo com drogas pesadas, e isso não é um exagero, a maioria das pessoas vão cair na armadilha de pegar o caminho que parece fácil e terá vários problemas. Como toda droga, ela é sensacional, o cérebro quer muito aquilo e nem se preocupa com o preço que será cobrado. Mas não tem m,uito o que fazer. Como nunca conseguimos fazer as pessoas entenderem que a droga te torna escravo também não vamos conseguir fazer as pessoas se tornarem escravas da IA.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).

-1

Escrever código sempre foi a parte mais cara em termos de tempo humano.

Escrever codigo sempre foi a parte barata. Escrever o codigo CERTO sempre foi o gargalo. Codigo sempre foi descartavel. Tem reports do chaos de 2006 que mais de 50% das features nunca chegam em produção.

Isso muda completamente o papel do programador.

O profissional mais valioso não será quem escreve código mais rápido.

Será quem entende profundamente:
...
E consegue transformar tudo isso em definições claras e testes precisos.

SEMPRE FOI.

-1

Cara, muito bom que você e muitas pessoas pensam assim! No futuro sobrarão muitas vagas e ai vai dar para escolher.

Eu até poderia sugerir algo real e concreto para você, porém devido ao conteúdo do "seu/IA" texto e suas crenças aparentes sobre esse assunto, acho que não vai adiantar muito.

Para o pessoal que realmente quer se destacar nas próximas oportunidades do mercado de trabalho, sugiro fortemente que estudem as bases e não caiam nessa de "código por vibração", framework mágicos e afins.