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” 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.
Adorei o texto, Ghedin!
E falar que eu, mesmo me rotulando como “programador”, até hoje ñ consegui fazer um simples redirecionador usando o Atalhos. Agora que vi a sua expertise, Ghedin, percebi que ñ se precisa saber programar para fazer automações no seu dia-a-dia com softwares feitos pra isso.
Sobre o “vibe coding”, mais um hype que logo irá passar. Venho usando mais o Cursor, inclusive, assinei pois percebi que a ferramenta ajuda demais, principalmente quando preciso fazer algo repetitivo (gerar dados em um .json, por exemplo). É sem dúvidas “inteligente”, mas ñ saber o que está fazendo, acontecerá o caso do carinha do SaSS.
Vejo que o problema há tempos é que empurram ferramentas que nem se vendem como “salvadoras”, mas como que irão resolver os problemas de se ter alguém custando valores abaixo do que uma licença de 20 dólares.
Ps.: vou participar de uma entrevista, vou usar o Cursor e ver qual a reação do pessoal. :)
Tem como compartilhar esse atalho do youtube?
Sim! Aqui.
Precisa ter instalados o yt-dlp e o ffmpeg no sistema. Eu instalo ambos pelo MacPorts; ficam no diretório
/opt/local/bin/. Não sei se pelo Brew o caminho muda, mas se sim, é só alterar o atalho. Para saber o caminho, manda umwhere ffmpegewhere yt-dlpno terminal depois de instalá-los.Cara, pessoalmente o vibe-code tem sido responsável por me dar um up na carreira e uma nova inspiração para buscar novos estudos e certificações. Sempre que eu ia estudar programação eu acaba perdendo tempo demais com sintaxe e tempo de menos com lógica.
O vídeo do fireship sobre vibe coding descreve bem minha opinião: codificadores (pessoas que são boas de escrever código, que conseguem escrever 20 minutos de código C de cabeça sem nenhuma referência) vão ser desvalorizados pela tecnologia e pessoas que são boas de lógica, boas de traduzir requisitos de consumidores para requisitos de software vão deslanchar porque vão ter menos barreiras (barreiras sem valor agregado, digasse de passagi) para colocar as suas ideias para rodar.
Sobre outros comentários, acho que outro impacto que vai haver é que os programas low code vão perder MUITO a atratividade. Porque eu tenho que fazer um programa em bloquinhos se até um usuário leigo consegue pedir uma programação básica para uma IA? A PTC ter largado mão do thingworx parece fazer mais sentido agora.
De uso similar no Android tem o Automate:
https://play.google.com/store/apps/details?id=com.llamalab.automate
A ideia dele também é usar blocos e informações visuais pra criar automações. Também interage com alguns apps externos.
O Atalhos da Apple entra em um paradigma bem antigo, o “NoCode”. Isso já foi utilizado bastante ao longo dos anos. É quase como se fosse uma GUI para um script BAT ou SH.
A ideia do “vibe coding” é parecida com isso, mas mais aprofundada. É possível passar uma imagem (um esboço feito nno excalidraw por exemplo) de um site com as cores e os elementos e o ChatGPT (ou qualquer outro) devolvem um CSS mais ou menos pronto. A parte humana fica na análise desse.
Acredito que para sistemas complexos não sirva, mas para coisas pequenas eu creio que isso vai ajudar bastante. Agora mesmo eu pedi uma query pro Google Sheets para contar a quantidade de cada status de uma determinada coluna. Eu poderia ter feito isso procurando no Google? Claro, mas o Gemini me deu a resposta pro que eu queria em alguns segundos apenas.
Gostaria de saber como uma IA irá resolver um sistema cheio de interações com APIs que ela não conhece, e necessidade de obter informações e cruzar de diversas fontes.
Para mim, essa ideia de vibe coding é uma piada. A ideia de que tudo tem que ser divertido morre a hora que a sua vida depende da “diversão” do outro.
Já pensou um neurocirurgião gamificando sua profissão? “Oba, estou a cinco dias sem tornar um paciente em um vegetal.”
Não vai, mas a ideia nem é essa.
Assim como nós não contratamos um tradutor para ler uma página web, não vamos mais contratar um programador ou comprar um software para fazer algo simples como uma lista de streams assinados. A ideia, eu vejo, é essa.
Esse eu vou ler no Kindle, tomando um cafezinho caro. Parabéns Guedin!
Ótimo alerta pra quem não manja de programação, mas é curiosa (eu, eu). Uso vários hacks no dia-a-dia: planilha excel turbinada pro orçamento doméstico, notion pra planejamento de viagens e de rotinas (além de servir como commonplace notebook, livro de receitas etc etc), notepad++ pra textos repetitivos no trabalho, e atualmente a IA pra análises também repetitivas e pra simplificar o juridiquês a fim de torná-lo acessível a pessoas de baixa escolaridade. Promete-se muito sobre a IA de modo geral, e quem é pato, cai…