leftpad, vibe-coding e o mercado que corta custos a qualquer custo
Alexandre Pierre

Alexandre Pierre @alexandrempierre

Location:
Brasil
Joined:
Nov 4, 2019

leftpad, vibe-coding e o mercado que corta custos a qualquer custo

Publish Date: May 14
1 0

Tenho estado intencionalmente distante da discussão sobre vibe-coding, mas me parece mais uma tentativa de reduzir o conhecimento necessário para desenvolver software sem nenhuma garantia de resultado. Algumas previsões sobre onde isso nos levará me lembraram bastante do desastre que aconteceu no ecossistema de JavaScript, especificamente no npm, em 2016 quando um dev independente entrou em conflito com a própria organização do npm deletou sua conta levando junto um pacote curtinho que ele escreveu.

O pacote se chamava leftpad e seu conteúdo está integralmente na imagem que ilustra esse post, mas vou colocar abaixo também:

module.exports = leftpad

function leftpad (str, len, ch) {
  str = String(str);

  var i = -1;

  ch || (ch = ' ');
  len = len - str.length;


  while (++i < len) {
    str = ch + str;
  }

  return str;
}
Enter fullscreen mode Exit fullscreen mode

O problema é que esse pacote era dependência direta ou indireta de muitos outros pacotes. Muitos projetos que estavam no ar quebraram, alguns por minutos outros por horas, por falta desse pacote. Para ler mais sobre o incidente, recomendo a página da Wikipedia sobre o ocorrido.

Muita gente apontava que um ecossistema baseado em usar pacotes de terceiros para as tarefas mais simples e curtas, e manter tudo sendo atualizado automaticamente era problemático. Não imaginávamos necessariamente um leftpad, estávamos mais preocupados com algo na linha de rand-user-agent. No fim, ambos ocorreram.

Não é só um problema do mercado

Muitos de nós temos programação como hobby além de trabalho e em nossos projetos paralelos podemos acabar usando ferramentas que façam parte das tarefas para nós. Às vezes disponibilizamos nossos projetos de forma open-source, às vezes não. Às vezes o projeto ganha corpo, passa a ser usado e um erro seu vira problema de todo mundo ou um erro de alguém que você nunca viu vira problema seu.

Tirinha

Um exemplo de como a tirinha acima se aplica ao mundo real e de como um erro seu num projeto que ninguém te paga para fazer vira problema de todo mundo é o ocorrido com o Log4j.

Por que o Log4j não está no título

O Log4j não se encaixa exatamente na crítica do texto, ele só aparece pra nos lembrar que correr para usar algo pronto não é só problema do patrão e que se correrem para usar algo nosso é melhor termos uma licença que garanta que não nos responsabilizaremos pelos danos ou que deveriam estar nos pagando para resolver os problemas decorrentes.

A mão invisível quebra os próprios dedos

A crítica aqui é bem simples, se o mercado busca maximizar o lucro imediato a cada passo de cada processo, na produção de software haverá a tendência a tomar decisões como:

  1. baratear força de trabalho
  2. encurtar prazos
  3. cortar caminhos

Contratando gente menos capacitada e/ou menos gente, leftpad (software modular com cada pedacinho já pronto) permitia que as pessoas entrassem no mercado com quase nenhum conhecimento além de npm install ...

Vibe coding está provocando um processo parecido e produzindo software cheio de defeitos e falhas de segurança. Minha previsão pessoal era que as equipes encolheriam e sobraria um sênior usando IA e resolvendo os problemas, talvez eu tenha errado nessa.

O dito acima já cobre a parte de cortar caminhos, o encurtamento de prazos só garante que ninguém vai conseguir perceber os problemas criados a não ser que haja incentivo externo, como na área bancária que é fortemente regulada.

Conclusão

Pro dev: "busque conhecimento" - ET Bilu.

Pra empresa: faça uma análise mínima de risco e tome o cuidado de não economizar um real agora pra quebrar no futuro sem conseguir resolver os problemas que criou hoje. Tenha bons devs e contrate QAs.

Comments 0 total

    Add comment