- As pequenas bibliotecas utilitárias de JavaScript estão se tornando cada vez mais desnecessárias por causa da capacidade dos LLMs de gerar código
- Por exemplo,
blob-util é um pacote npm com 10 anos de existência, uma coleção de ferramentas para lidar com Blob, mas agora a IA consegue gerar código semelhante na hora
- Essa mudança permite menos dependências e desenvolvimento mais rápido, mas também provoca a perda de oportunidades de aprendizado e compreensão
- Após a expansão dos recursos nativos do Node.js e dos navegadores, os LLMs estão acelerando o fim das bibliotecas pequenas
- No futuro, o valor do open source provavelmente continuará em áreas criativas, de grande escala e especializadas
O declínio do open source pequeno e o impacto dos LLMs
blob-util, criado há 10 anos, é uma coleção simples de utilitários para converter o objeto Blob do JavaScript em string ou ArrayBuffer, com mais de 5 milhões de downloads semanais
- O autor o criou ao ver que usuários do PouchDB tinham dificuldades para lidar com
Blob
- Atualmente, cerca de 80% dos desenvolvedores usam IA no trabalho, e por isso utilitários simples podem ser substituídos por LLMs
- Como exemplo, o Claude gera na hora uma função TypeScript para converter
Blob em ArrayBuffer
- O resultado do Claude é semelhante ao
blob-util, mas é mais verboso e tem validação de tipos excessiva, enquanto o tratamento de erros é melhorado
- O autor menciona que essa mudança pode parecer uma redução de dependências e aumento da robustez do código
Perda de valor do open source voltado ao aprendizado
- O README do
blob-util inclui um tutorial com o personagem Kirby e tinha como objetivo, além de oferecer uma função simples, ajudar no aprendizado de JavaScript
- Em um ambiente de desenvolvimento centrado em LLMs, respostas imediatas passam a ter prioridade sobre compreensão e educação, reduzindo a necessidade desse tipo de open source educativo
- Tentativas como
llms.txt para automatizar documentação acabam redefinindo o próprio significado da documentação
Uma nova direção para o open source
- O autor continua contribuindo com open source, mas acredita que a era das bibliotecas pequenas e de baixo valor acabou
- Já havia uma tendência de queda com a expansão de recursos nativos do Node.js e dos navegadores (
node:glob, structuredClone etc.)
- Os LLMs aceleraram decisivamente esse movimento
- Bibliotecas com papel educativo (como Underscore.js) também se tornam menos necessárias
- Funções simples como agrupamento de arrays agora podem ser resolvidas com APIs padrão
As condições para que o open source ainda retenha valor
- O valor se concentra em projetos grandes, criativos e especializados que LLMs não conseguem gerar facilmente
- Por exemplo, o projeto
fuite e a pesquisa sobre detecção de vazamento de memória são trabalhos criativos difíceis de reproduzir com LLMs
- No futuro, o significado do open source estará em novas ideias e criatividade humana
- Como exemplo, o texto menciona o framework Ripple.js, desenvolvido por Dominic Gannaway, destacando o espírito humano de experimentação
Conclusão
- Os LLMs tornaram parte do open source obsoleta, mas ainda existem oportunidades para criar novas formas de open source
- A criatividade e o espírito de experimentação dos desenvolvedores humanos são apresentados como elementos centrais para a sustentabilidade do ecossistema open source na era da IA
4 comentários
Acho que tudo bem, desde que consigamos impedir apenas hábitos estranhos do ecossistema como o
left-pad.À medida que entramos numa era em que a satisfação obtida em relação ao esforço investido é cada vez menor, parece que pequenos utilitários acabarão sendo deixados de lado por serem considerados sem valor em comparação com o trabalho (esforço) necessário para mantê-los.
Comentários do Hacker News
Hoje em dia, cerca de 80% dos desenvolvedores usam IA no trabalho
Utilitários como
blob-utilagora podem, em sua maioria, ser gerados diretamente por LLMsMas essa abordagem é uma faca de dois gumes. Código não validado deixa um custo de manutenção e pode falhar em casos extremos
Por isso, no ecossistema Java, coleções padrão confiáveis de utilitários como o Apache Commons se consolidaram
Já o código gerado por LLM pode parecer lógico à primeira vista, mas tem grande chance de esconder bugs estranhos
Entramos em uma era em que a IA gera código e tutoriais em massa, acelerando a queda de qualidade e a spamização
Há menos motivação para criar blogs pessoais ou bibliotecas pequenas
Textos feitos por LLM parecem estar num nível parecido, então até sinto que ficou mais fácil filtrá-los
Eu testo o valor real de um tutorial executando o código dentro de um
devcontainer. Se funcionar, vale a pena ver; se não, descartoO inferno das microdependências em JS era um pesadelo
Agora espero que essa era esteja acabando, e que voltemos a um tempo em que os desenvolvedores aprendam a programar de novo
jQueryoulodash, foi o que deu melhor resultadoSurgiu a pergunta se o “problema de inverter uma árvore binária” realmente existe
Houve concordância com a afirmação de que “a era das bibliotecas pequenas e de baixo valor acabou”
A linguagem Go, desde o início, nunca teve inferno de dependências, e o problema do npm se deve a fatores culturais
Agora, mais valioso e interessante do que utilitários é criar produtos que realmente funcionem
Eu acho que microdependências em si não fazem sentido
Seria melhor simplesmente listar as funções em Markdown para que as pessoas copiem
A abordagem de pequenas bibliotecas em C baseadas em arquivos de cabeçalho é mais prática
Foi levantada a pergunta: “que tipo de open source ainda faz sentido agora?”
Porque o código publicado acaba sendo absorvido como dado de treinamento para IA
Por isso, em vez de FOSS completo, o modelo source-available pode ser uma alternativa
O autor enfatizou que o significado da contribuição é maior do que apenas ter o nome creditado
Eu acredito que o open source não vai desaparecer, e sim ficar ainda mais forte
Desenvolvedores realmente criativos vão usar IA para criar inovações que empresas não conseguem produzir
O open source continua sendo um campo real de validação de valor, e um espaço para aprender ultrapassando limites com IA
Mas a previsão é que governos e grandes empresas tentem regular sistemas de IA locais, e em breve surja uma fronteira sobre “qual IA os cidadãos podem usar”
Perde-se mais tempo com revisão e discussão de políticas e, especialmente em áreas complexas como compiladores, a IA não ajuda em nada
Alguém enfatizou que, “mesmo que não seja adicionado como pacote, o ato de publicar código em si ainda tem valor”
Se o LLM escrever o código no meu lugar, o custo de aprendizado diminui e posso focar em temas mais profundos
Por exemplo, alguém disse que manteve o
rubygems.orgpor 14 anos, mas saiu por decepção com a estrutura corporativizadaHouve a observação de que “escrever código com IA também é, no fim, uma forma de dependência”
Copiar e colar sem validação não é diferente de adicionar uma biblioteca externa
No começo de 2024, quando eu estava fazendo um projeto pequeno,
pedi ao Claude 3.5 para criar um módulo de store state que pudesse ser usado em pure JavaScript,
e lembro de ter ficado surpreso porque ele escreveu um código conciso que ainda dava conta até de cenários de migração.
Quanto menor a biblioteca, mais provável é que já exista muito código público feito por pessoas que pensaram de forma parecida, então, se considerar que a IA consegue transformar isso em uma estrutura padronizada com facilidade, acho que é um fenômeno natural.
Como o copyparty, projetos que qualquer um pode imaginar, mas que são difíceis de manter por muito tempo individualmente.
É uma pena pensar que, daqui para frente, talvez fique mais difícil ver esses projetos limpos e bem lapidados surgirem porque alguém levou esse tipo de projeto até o fim.