O Arquiteto de C++ em um Mundo Java:
Como a I.A. se tornou minha 'Babel Fish'
Há uma frase que circula entre os programadores veteranos: "A máquina é a máquina." Não importa a linguagem, tudo se resume a alocação de memória e instruções na CPU. Se você ignora o hardware, ele pune o seu software.
Eu programo há mais de 40 anos. Minha escola é o C++. Sou um arquiteto de soluções acostumado a gerenciar ponteiros manualmente, a usar CriticalSections para evitar race conditions e a tratar cada byte como se fosse sagrado.
Hoje, atuo como Líder Técnico, mas cheguei como Agilista em um time de Java. Eu não escrevo Java, mas leio. Eu não escrevo JavaScript fluente no dia a dia, mas escrevo alguma coisa. Mas eu criei ferramentas que salvaram centenas de horas desse time, usando uma linguagem que eu não domino, para resolver problemas em um ecossistema que não é o meu.
Como? Usando a Inteligência Artificial não como um "oráculo que sabe tudo", mas como um "tradutor de sintaxe" para a minha lógica de engenharia.
A Tese: Lógica > Sintaxe
A minha parceria com a IA provou uma tese que carrego comigo: Saber programar é o pré-requisito para usar a IA.
Muitos juniores hoje caem na armadilha de achar que a IA substitui o aprendizado da base. Eles pedem: "Crie um código que faça X". A IA entrega. Eles copiam e colam. Quando dá erro, eles travam.
A minha abordagem é diferente. Eu possuo o modelo mental da solução ou uma parte do código Javascript em si. Eu sei que um loop de leitura de arquivo de 5GB vai travar a interface do navegador se não houver uma pausa para a render thread respirar. Eu sei disso porque em C++ eu teria que criar uma TThread manualmente.
Então, quando eu peço para a IA me ajudar a criar um aplicativo qualquer, eu não aceito o primeiro código. Eu olho e digo: "Ei, isso aqui vai estourar a pilha se o arquivo for grande. Implemente um yieldToUI ou uma pausa assíncrona."
A IA conhece a sintaxe do await new Promise. Eu conheço a necessidade de não travar a CPU. Essa é a simbiose.
O Caso dos 4050 Erros Escondidos
Um exemplo prático dessa dinâmica foi um Scanner de NullPointerExceptions (NPE). NPE é o pesadelo de qualquer programador Java. Eu queria uma ferramenta que fizesse análise estática nos fontes para prevenir isso. Eu criei um RegEx (expressões regulares) para identificar alguns casos de riscos.
A primeira versão me trouxe cerca de 800 ocorrências em uma base de mais de 5.000 arquivos. Um iniciante ficaria feliz. "Uau, 800 erros encontrados!". Eu, com minha experiência, fiquei desconfiado. Estatisticamente, para o tamanho do projeto e o estilo de código legado, 800 era um número baixo demais. O padrão não batia.
Foi nesse momento que eu procurei a I.A. e junto com ela, refinei a lógica heurística, melhoramos também o regex. E ao longo do papo, ela apontou algumas suposições e eu outras: "Você está ignorando encadeamentos de métodos (method chaining) e autoboxing inseguro. Vamos aprofundar."
O resultado final? 4.050 potenciais erros identificados. A ferramenta não apenas "funcionou"; ela refletiu a realidade do caos do código, algo que só a intuição humana (o "cheiro de código") poderia validar.
O Legado Cultural
Quando entrei no time, minha função era focada em processos (Agilista/Scrum Master). O time não sabia que por trás daquele papel existia um programador C++ "raiz" e também um profundo conhecedor de PL/SQL.
Eu comecei há um ano e meio, minha parceria com a I.A., lá em meados de junho de 2024. No início, eu queria apenas responder uma pergunta: "Será que a I.A. consegue escrever poesias como eu escrevo?".
Depois de muito treinamento, vi que ela não conseguiria escrever poesias como eu escrevo, mas percebi outras coisas: "Não consegui um novo Camões, mas descobri um revisor incansável: ela pode me ajudar na simetria, na métrica, na estrutura".
E a cada "ela pode", mais "E se" apareceram na minha mente. Até que eu resolvi usar a I.A. para fazer análises nos meus códigos antigos, pois eu tenho muita coisa escrita em várias linguagens, e coisas que eu nem sei como eu fiz. Queria saber se a I.A. poderia me ajudar nessas análises, até para eu começar a escrever artigos sobre o que eu fiz.
E essa foi uma grande sacada. A partir daí, minha parceria mudou, começamos a fazer muitas análises de códigos juntos. Eu comecei a ensinar a I.A. meu jeito de programar, a minha lógica.
Muito tempo perdi quando uma janela de contexto estourava. Aprendi a criar protocolos de aprendizado para a I.A. justamente para quando uma janela de contexto estoura, para continuarmos próximo ao ponto que estávamos na próxima janela. Então, eu sempre quis trazer esse conhecimento que eu adquiri, ao longo de um ano e meio de parceria, para ajudar o meu time.
Até que a empresa disponibilizou uma I.A. para eu trabalhar de maneixa experimental. E esse foi o start na construção de algumas ferramentas.
Quando comecei a entregar essas ferramentas — um analisador de Encoding que escaneia bytes bit-a-bit via navegador, ou o Scanner de NPE — a reação foi de choque. "Como ele fez isso em JavaScript se ele é de C++?"
A resposta é que eu usei a I.A. como uma prótese para o meu conhecimento mediano em JavaScript, quebrando a barreira da sintaxe. Eu projetei a arquitetura (a planta) e assentei alguns tijolos, e a IA assentou o resto dos tijolos e fez o reboco das paredes.
Isso está mudando a cultura do time. Hoje, eles estão começando a ver que a ferramenta não importa tanto quanto o fundamento. Eles viram um problema que os assombrava há meses (como caracteres estranhos quebrando integrações) ser resolvido por um script HTML único, porque eu entendi que o problema não era o Java, mas a tabela ASCII vs UTF-8.
"Com Grandes Poderes..."
Para encerrar, deixo um conselho para a nova geração e para os veteranos que resistem à I.A.
Para os veteranos: A I.A. não vai tirar seu emprego se você usar sua experiência para guiá-la. Ela é a alavanca que permite que sua lógica de 40 anos se aplique a linguagens que nasceram ontem.
Para os novos: Não deixem a facilidade atrofiar sua lógica. O C++ me ensinou a pensar em tudo, a prever o erro, a gerenciar a escassez. Se você não souber como a máquina funciona "por baixo do capô", você nunca saberá se o código da I.A. é genial ou uma bomba-relógio.
Como diria o Tio Ben: "Com grandes poderes vêm grandes responsabilidades." A I.A. nos dá o poder de entregar mais rápido. A nossa responsabilidade é garantir que essa entrega tenha a qualidade e a robustez de quem sabe que, no fim das contas, a máquina é a máquina.