Vibe coding
Com o desenvolvimento dos grandes modelos de linguagem (LLMs) estagnado, techbros do setor tiveram que inventar outros critérios para sinalizar progresso e manter os bilhões de dólares de investidores fluindo enquanto a “inteligência artificial geral” (sic) não chega. Foi daí que surgiram aberrações como a nova versão “mágica” do ChatGPT boa em “escrita criativa”, “agentes” […]

Com o desenvolvimento dos grandes modelos de linguagem (LLMs) estagnado, techbros do setor tiveram que inventar outros critérios para sinalizar progresso e manter os bilhões de dólares de investidores fluindo enquanto a “inteligência artificial geral” (sic) não chega.
Foi daí que surgiram aberrações como a nova versão “mágica” do ChatGPT boa em “escrita criativa”, “agentes” autônomos, mais e mais modelos capazes de “pensar” ou “raciocinar”. (Tudo entre aspas porque essas simulações são medíocres quando muito, não funcionais com frequência.)
Dentre o show de novas aplicações para a IA generativa, surgiu o “vibe coding”, termo cunhado em fevereiro por Andrej Karpathy, co-fundador da OpenAI.
Em linhas gerais, “vibe coding” é uma abstração absoluta da criação de software. Em vez de código, o desenvolvedor escreve enunciados (“prompts”) a uma IA descrevendo o software desejado. A IA cospe de volta um código que, se não estiver à altura do esperado, é refatorado da mesma maneira, com mais instruções passadas à IA em linguagem natural. O desenvolvedor, no caso, transforma-se em palpiteiro. No fim e com sorte, a sessão termina com um programa que funciona.
Programar é uma habilidade poderosa, mesmo que em contextos que não envolvam startups e ideias que mudam o mundo.
Eu adoro este texto de 2020 do Robin Sloan: “Um app pode ser uma refeição caseira.” Ele encapsula e exemplifica de maneira magnífica a ideia de uso do software para fins mais simples, limitados; um app para a sua família, uma rotina que agiliza tarefas específicas no trabalho; uma planilha mais elaborada no Excel, que seja. É a antítese do software corporativo, cheio de incentivos e objetivos arbitrários que, muitas vezes, contrastam com as expectativas de quem o usa (eu e você). Acima de tudo, pode ser divertido e profundamente satisfatório.
Nesse sentido, não é que eu seja contra o “vibe coding”. Pelo contrário, não sou. O problema é outro. É que promete-se muito e essa promessa não se sustenta, como descobriu o amigo que comprou a ideia e criou um SaaS com o Cursor, um editor com IA embutida, “sem qualquer código escrito à mão”, apenas para dois dias depois voltar a público, em pânico. “Caras, estou sob ataque… coisas aleatórias estão acontecendo.”
Em apenas dois dias, o “vibe coding” pode virar uma “bad trip”.
***
Escrever sobre tecnologia me coloca num lugar por vezes incômodo. Eu sei escrever português, não código; que eu escreva sobre códigos em português induz algumas pessoas à conclusão equivocada de que eu sei escrever código.
Não sei programar. Entendo algo da lógica e consigo fazer coisas simples, como editar o leiaute deste site fuçando em linguagens simples, como HTML e CSS, e até alguma coisa muito superficial de JavaScript e PHP. Não vou muito além disso. É uma pena. Há diversas coisinhas no dia a dia que, se eu soubesse o básico de uma linguagem acessível, como Python ou Go, talvez pudesse criar.
É por isso que gosto muito do aplicativo Atalhos, da Apple. Trata-se de uma ferramenta de automação fácil para os não iniciados e poderosa para quem manja. Em outras palavras, para gente tipo eu.
Tenho uma dezena de “atalhos” que uso exclusivamente no computador1 para agilizar tarefas repetitivas da minha rotina.
O atalho mais antigo e o que mais uso é um que converte um texto escrito em Markdown (linguagem de marcação para formatar textos) para HTML (outra linguagem de marcação, o idioma universal da web, lida por navegadores).
Antes de mergulhar no Atalhos, usava um par de scripts no terminal criados em cima do pandoc. (Lembra disto?) Funcionam, claro. A vantagem do Atalhos é um fluxo de trabalho mais flexível. Em vez de copiar o texto, abrir o terminal e rodar o comando, no Atalhos eu configurei um atalho no teclado (quanto “atalho”!). Seleciono o texto, aperto Command + Shift + D e tcharam!, meu texto convertido em HTML vai para a área de transferência2.
Outra manjada, mas que me é muito útil: Command + Shift + X faz a contagem de palavras e caracteres do texto selecionado.
Como se nota no print acima, esses atalhos são simples, do tipo que se cria visualmente, arrastando blocos (“ações”, no jargão da Apple) em uma ordem lógica.
O poder do Atalhos se revela em tarefas mais complexas. Por exemplo, ao rodar scripts de shell3 dentro de um atalho.
Um que tenho usado é o de compactar (“minify”) a folha de estilo do tema deste Manual, o que ajuda a carregar o site mais rápido ao custo de legibilidade do código. Para ter o melhor dos dois mundos, mantenho um arquivo normal (style.css
) e compacto ele (style.min.css
) antes de enviá-lo de volta ao servidor.
Por um bom tempo, usei uma aplicação web para fazer isso. Não é a coisa mais demorada do mundo, mas poderia ser mais rápido.
Descobri um pacote, o Minify, que faz esse trabalho no terminal. Depois de instalá-lo, criei um atalho para ter as vantagens do Atalhos, como uma opção no menu de contexto e no Spotlight (a pesquisa do macOS).
Também tenho um que baixa vídeos de sites como o YouTube com a ajuda do yt-dlp. Bem melhor que fazê-lo por aqueles sites coalhados de anúncios suspeitos.
A última peripécia minha foi acessar a API do Buttondown pelo Atalhos, ideia que me veio após ler o post “Como (e por que) pessoas não-técnicas deveriam aprender a usar uma API”. (Hey, este sou eu!)
Quando alguém assina o Manual, coloco uma etiqueta no cadastro dessa pessoa no Buttondown para que ela receba uma mensagem de boas-vindas com orientações da assinatura e passe a receber os e-mails exclusivos para assinantes.
Você já deve ter sacado o que eu fiz, né? Em vez de acessar o site, procurar o e-mail da nova assinante e etiquetá-la clicando com o mouse, agora eu apenas executo o atalho e vou respondendo as perguntas — qual e-mail? Que etiquetas adicionar? Qual o nome dessa pessoa? O valor da assinatura? O meio de pagamento?
***
Imagino que o público do Atalhos, gente como eu, seja relativamente pequeno. A Apple, apesar do mérito de oferecer algo do tipo4, não lhe dispensa muita atenção. A cada grande atualização dos seus sistemas operacionais, coisas aleatórias quebram. Quem faz um uso mais intenso do app reclama bastante do descaso.
Ainda assim, o Atalhos é uma espécie de elo perdido entre não-programadores e programadores, um facilitador para tarefas diversas similar ao que o Excel representa no mundo corporativo.
Criar pequenos programinhas que resolvem ~dores, seja “vibe coding”, seja com o Atalhos, é empoderador — desde que as expectativas não sejam exageradas, o que sempre leva à frustração. Não dá para criar um SaaS ou uma empresa em cima de um negócio sustentado por cuspe e remendos, por um aplicativo feito no ChatGPT. Menos, gente. Só que dá para fazer muita coisa legal e útil e, quem sabe, criar a faísca para voos mais altos e ousados.
Essa reflexão motivada pelo “vibe coding” e pelo Atalhos me faz questionar, também, a necessidade de sinalizar o uso de IA quando ela é meio, e não fim.
Um poema ou mesmo um texto como este que escrevo é fim: o benefício (utilidade, prazer, distração, o que for) se dá pela leitura em si. Um aplicativo ou mesmo um texto estruturado, como balanços financeiros de empresas, são meio.
Da mesma maneira que eu não faço um disclaimer do uso do corretor ortográfico do macOS em todo texto que publico aqui, não tem por que revelar que o desenvolvimento de um software teve o auxílio de uma IA. Se quiser, pode, claro. O que questiono é o imperativo moral de ser transparente nesse sentido, de que ser pego usando o ChatGPT para escrever uma função em JavaScript seja um deslize ético.