DEV Community

Cover image for NeoBASIC #2 🔰 Precisamos Conversar Sobre Vibe Engineering?
Raul Bras  🇧🇷
Raul Bras 🇧🇷

Posted on

NeoBASIC #2 🔰 Precisamos Conversar Sobre Vibe Engineering?

Build (ainda) in Public

Recentemente publiquei o artigo Linguagem NeoBASIC 🔰 Transpilador para C++ para divulgar o projeto dessa linguagem que estou criando. De lá pra cá, sigo elaborando uma tour (visão geral) no site para descrever a linguagem, e também programando o compilador. Tem outras frentes de trabalho, mas achei melhor focar nessas duas tarefas para ao menos apresentar a linguagem.

Estive até o momento usando Python e isso ajudou bastante pra validar a gramática. O Python's REPL é incrível. Mas o tempo do parsing foi piorando até chegar em 20 segundos para processar os demos. Então ao invés de tentar otimizar — não acho que iria melhorar muito, resolvi partir pra uma linguagem compilada. Uma que ao menos ajudasse nessa etapa de prototipação, até NeoBASIC estar consolidada. Escolhi Go, inspirado pelo novo compilador de TypeScript; estou migrando tudo o que fiz até o momento. Vai dar um trabalhinho, vou ver se a IA me ajuda nisso. Mas como não estou pagando por nenhum serviço, sei não…

Por enquanto não está sendo um trabalho tão complexo; acho que a dificuldade maior é conciliar o trampo (que paga os boletos) com esse projeto. Acordo bem cedo pra tentar codar o máximo antes das 9h, e depois tento fazer algo mais a noite — mas tem dia que é foda! Finais de semana é que permitem adiantar bastante. Se alguém aí tem alguma dica de como está conseguindo maior produtividade com side-projects, gostaria muito de saber.

No mais, não há muito a relatar. O restante desse texto é trivial, só mais um dev alucinando…

Código Gerado vs Código Sugerido

A gente não pode confundir código gerado com código "sugerido" ou "auto-completado". (chutando) 99% de todo código de máquina no planeta é gerado por compiladores, e não tem muita gente conferindo ou depurando esse código porque compiladores trabalham em um processo determinístico. Entra X e sai Y, e será assim indefinidamente. Você corrige os bugs, compila o programa, repassa para o deploy em produção, e vai pra casa descansar.

Teve um momento em que programadores escreviam código de máquina; tudo na mão mesmo, apertando botões e alavancas. Então vieram os compiladores e os programadores tiveram que se adaptar com linguagens como Assembly e Fortran. Isso aconteceu nas décadas de 40 e 50 do século passado. De lá pra cá tivemos que nos adaptar a muitas mudanças tecnológicas, mas a gente conseguiu levar de boa. Em parte porque eram tecnologias que seguiam o método científico: processos repetitivos com a garantia da confiabilidade, validade e objetividade dos resultados.

Dois computadores distintos, quaisquer que sejam suas arquiteturas, podem compilar e executar o mesmo programa e o resultado será sempre o mesmo. Dois programadores usando o mesmo prompt com a mesma AI-Chat podem (?%) obter resultados distintos. Não só o resultado irá variar, mas também o slop que poderá estar presente. E não podemos esquecer: isso não é bug, é feature. Alucinação é algo que faz parte da coisa.

A Importância da Paz de Espírito

Eu faço parte dos tantos (??%) programadores que usam IA diariamente. E tô muito feliz. Mas ainda escrevo muito código, embora agora esteja usando muito a tecla TAB. E a minha percepção desse código que o VS Code sugere é que eu nunca vou poder confiar 100%. Isso faz uma grande diferença. Se ao final do processo ainda poderemos dizer que houve redução de tempo e maior produtividade, só o tempo dirá.

Nenhuma instituição financeira irá liberar para produção um código gerado por IA que não foi totalmente lido, relido, verificado, depurado e testado. Tenho pena dos programadores dessas instituições que usarem IA e ocorrer algum bug em produção que cause prejuízo financeiro e de imagem da empresa. Um programador que tenha seu trabalho constantemente questionado, rotulado como não confiável, terá um medo permanente de ser demitido. Mais um fator para transtornos mentais em uma área marcada pelos ambientes tóxicos de trabalho.

Lembro da landing page do Apache Maven há alguns anos, com um banner no topo da página, em que um programador observa a paisagem, enquanto um computador executando o Apache Maven sobre a mesa está fazendo todo o trabalho. A gente nunca vai poder ter essa paz de espírito com LLMs. Precisamos conversar mais sobre isso, e o impacto em nossa saúde mental. Usei aquele banner como thumbnail desse texto. Se quiser conferir o site original...

Mea Culpa

Pois é, o título do post era clickbait. Acabei não falando sobre vibe engineering, nem comparando com vibe coding. Precisava?

Esse texto é meu ponto de vista, e tem muita gente enxergando o que está acontecendo de outra forma. Pra mim esse é o fator mais relevante, de que não há um consenso geral, e por isso ainda tem muito ruído que impede definir com precisão como as coisas serão nos próximos anos. Cada um tem sua opinião, e acho que isso é bom. Mas a opinião de vendedores, ou CEOs, não deveria ser tão relevante nas nossas decisões.

🖖 Uma longa e próspera carreira para você, com software.

Top comments (0)