Vibe Coding: Os Dois Lados da IA no Software
Quero falar de algo em que tenho pensado bastante como developer aqui no Porto: vibe coding. É um termo que provavelmente já ouviste, e até soa bem, certo? É aquela ideia de ires conversando com uma IA e veres o código a aparecer, quase como magia. Mas, do meu ponto de vista, depois de 25+ anos neste jogo, “vibe coding” não é uma coisa só. São, na verdade, duas ideias completamente diferentes, e a forma como o usamos, e quem o usa, faz toda a diferença. Vamos a isto.
Quero falar de algo em que tenho pensado bastante como developer aqui no Porto: vibe coding. É um termo que provavelmente já ouviste, e até soa bem, certo? É aquela ideia de ires conversando com uma IA e veres o código a aparecer, quase como magia. Mas, do meu ponto de vista, depois de 25+ anos neste jogo, “vibe coding” não é uma coisa só. São, na verdade, duas ideias completamente diferentes, e a forma como o usamos, e quem o usa, faz toda a diferença. Vamos a isto.
A versão “rodinhas de aprendizagem” (e porque devemos ter cuidado)
Imagina um developer novo, acabadinho de sair de um bootcamp ou só agora a começar a aprender. Tem uma ideia gira para um site simples. Abre um assistente de IA e começa a escrever: “Faz-me um formulário de login com um botão e uma mensagem de obrigado.” A IA responde instantaneamente com um bom bocado de HTML, CSS e JavaScript.
É a isto que muita gente chama vibe coding. Estão a “entregar-se às vibes”, como o próprio criador do termo disse uma vez, e obtêm um resultado funcional sem perceberem verdadeiramente o código.
Pela minha experiência:
Isto faz-me lembrar muito um pai a apertar os atacadores ao filho. É super útil naquele momento, e o miúdo vai brincar mais depressa. Mas, se nunca lhe ensinares a apertar os atacadores sozinho, ele nunca aprende essa competência básica. Fica dependente.
Para developers novos, depender constantemente de uma IA para fazer o trabalho pesado impede-os de desenvolver as competências críticas que mais importam:
- Debugging: Quando o código gerado pela IA inevitavelmente partir, como é que o arranjam se não percebem porque é que foi escrito daquela maneira?
- Resolução de problemas: O essencial do desenvolvimento de software não é escrever; é resolver problemas. Vibe coding salta por cima desta parte crucial do processo de aprendizagem.
- Pensamento crítico: Como sabes se a IA te deu uma boa solução? É segura? É eficiente? Sem uma base sólida, é impossível dizer.
E isto não é só problema do developer individual. Tenho visto uma tendência preocupante, com empresas a contratar developers juniores e a incentivar implicitamente este tipo de vibe coding para obter resultados mais depressa e mais barato. É absolutamente terrível. Cria aquilo a que chamo código “caixa-preta”: ninguém o percebe de verdade, o que leva a dívida técnica enorme e a riscos de segurança mais tarde. É uma vitória de curto prazo que vai sair caro ao negócio.
Dica: Para um developer novo, a IA é melhor usada como um mentor socrático, não como atalho para escrever código. Em vez de lhe pedires para fazer uma tarefa, pede-lhe para explicar um conceito. Pergunta “Quais são os prós e contras de usar puppeteer versus playwright?” ou “Explica-me esta linha de código.” É assim que aprendes a sério. E deves imediatamente adoptar IA no teu workflow.
A versão “colega” (onde a magia acontece a sério)
Agora, vamos ao outro lado da moeda.
É aqui que um developer sénior, com um entendimento profundo de código, e quero mesmo dizer profundo, dos bits e bytes à arquitectura, usa IA. Continuam a usar linguagem natural para conversar com a IA, a dizer coisas como “Olha, vamos experimentar isto” ou “Vamos acrescentar aquilo”. Isto também é vibe coding, mas é um animal completamente diferente.
Qual é a diferença?
Para o developer sénior, a IA não é uma muleta; é um colega super-rápido. É uma ferramenta para prototipagem rápida e exploração de ideias. Já não escrevemos cada linha de código de um boilerplate; usamos a IA para chegar do zero a um protótipo funcional numa fracção do tempo.
Isto não é preguiça; é eficiência. Liberta-nos para focar nas partes verdadeiramente difíceis (onde a IA ainda vai ter de evoluir uns anos para substituir também por completo, pela enorme quantidade de contexto que precisaria para tomar decisões de nível enterprise):
- Desenho arquitectural: Como é que todas as peças deste sistema se encaixam, pensando no longo prazo?
- Lógica de negócio: O código está a resolver o problema certo para o cliente?
- Performance e segurança: Somos nós os responsáveis por rever esse código, optimizá-lo e garantir que está à prova de bala antes de ir para produção.
O developer sénior é o chef de cozinha que sabe usar todas as ferramentas da cozinha, do batedor à instant pot. Pode usar a IA para uma receita rápida e experimental, mas é ele que a prova, refina e serve o prato final, de alta qualidade.
Não há vergonha nenhuma nisto. É só mais uma evolução do nosso toolkit.
FAQ
P: A IA vai substituir os developers?
R: É uma pergunta que ouço a toda a hora. A resposta curta é não, não vai. Mas a resposta longa é que vai mudar por completo o que significa ser developer. A IA é uma ferramenta, não um substituto. Ou melhor, é um colega muito rápido a que tens acesso a qualquer momento. Uma calculadora não substituiu os matemáticos; libertou-os para resolver problemas mais complexos. A IA está a fazer o mesmo por nós. Trata da parte repetitiva, do “escrever” do trabalho, mas é o humano que tem de continuar a fazer a parte do “pensar”: desenhar a arquitectura, resolver os problemas difíceis e perceber as necessidades do negócio.
P: Então o “vibe coding” é uma coisa má?
R: Depende mesmo de quem o está a usar. Para um developer experiente, é uma forma fantástica de acelerar um projecto, prototipar uma ideia e despachar o trabalho mais maçador. Para um developer novo, pode ser uma armadilha séria. É como um atalho que salta as lições mais importantes. O verdadeiro perigo é um developer júnior que consegue produzir código mas não lhe consegue fazer debug nem explicar porque é que funciona. Isto cria uma ilusão de competência que mais cedo ou mais tarde os apanha, e ao negócio também.
P: Como é que as empresas devem lidar com isto?
R: É aqui que entra a liderança. Devem incentivar os developers seniores a usar IA como ferramenta estratégica de eficiência. Isto acelera a inovação e deixa-os focar em trabalho de alto valor. Ao mesmo tempo, para os juniores, é preciso definir expectativas claras. O uso de IA deve estar focado na aprendizagem, mas deve ser adoptado já. Incentiva-os a fazer perguntas à IA, a rever o código que ela gera e depois a escrever a sua própria versão. Isto transforma a IA, de muleta, numa poderosa assistente de ensino, e essa é a chave para construir uma equipa forte e autossuficiente.
Links e recursos externos
Se quiseres aprofundar o tema, aqui ficam alguns artigos de gente que também anda a pensar no futuro do desenvolvimento de software com IA.
- The Truth About Vibe Coding: A Veteran Developer’s Perspective
- Um excelente artigo que entra mesmo nos prós e contras do vibe coding. O autor partilha um caso real de um projecto que falhou por falta de conhecimentos fundamentais de programação. É uma leitura forte que reforça o meu ponto sobre os perigos desta abordagem para developers novos.
- AI in Software Development: Revolutionizing the Coding Landscape
- Esta é uma visão geral muito completa de como a IA está a impactar todo o ciclo de vida do desenvolvimento de software. É um bom recurso para qualquer um, em especial para business owners, que queiram entender o panorama mais amplo, da geração de código aos testes e à gestão de projecto.
- Why/How Senior Engineers Embrace AI Tools in Development?
- Gosto muito deste porque enquadra os developers seniores como “chefs de cozinha” que sabem exactamente quando usar ferramentas de IA, tal como um chef sabe quando usar o micro-ondas ou o forno. É uma analogia perfeita que explica porque é que não usamos IA por preguiça, mas por um conhecimento profundo do nosso ofício.
Como encontrar bons developers
Se és business owner à procura de um developer que perceba a diferença entre estas duas abordagens, e saiba tirar partido das melhores ferramentas sem sacrificar qualidade, tens de trabalhar com um especialista de confiança.
É por isso que recomendo a Codeable; eles avaliam os developers tanto pela competência técnica como pela integridade profissional. Vais lá encontrar gente fantástica e de confiança.
Divulgação de afiliação:
Este é um link que te leva à Codeable, uma plataforma onde trabalho há quase 10 anos, e confio em todos os especialistas que ela integra. Por isso, à vontade para abrir a tua tarefa e fazer a tua pergunta, o link associa essa tarefa a mim como afiliado da plataforma.