StandardJS pausa experimento com anúncios no terminal após Linode retirar patrocínio

Publicados: 2019-08-29

Feross Aboukhadijeh, mantenedor da biblioteca StandardJS, um guia de estilo JavaScript, linter e fixador automático de código, lançou um experimento na semana passada que coloca anúncios no terminal para financiar o desenvolvimento. O experimento foi pausado depois de receber feedback negativo da comunidade de desenvolvedores, fazendo com que a Linode, um dos patrocinadores iniciais, removesse seu anúncio.

“Acho que o modelo atual de sustentação do código aberto não está funcionando e precisamos de mais experimentação”, disse Aboukhadijeh. “Este é um desses experimentos.” Ele desenvolveu um módulo que insere um anúncio sempre que o Standard 14 é instalado. Os fundos de patrocínio são designados para pagar pelo tempo do mantenedor, que ele definiu como “escrever novos recursos, corrigir bugs, responder a perguntas dos usuários e melhorar a documentação”.

Aboukhadijeh é um desenvolvedor prolífico que criou mais de 100 pacotes no npm que são baixados mais de 100 milhões de vezes por mês. Standard é seu projeto de código aberto mais popular e é usado por projetos e empresas de alto perfil, incluindo Node.js, npm, GitHub, Automattic e muitos outros.

Aboukhadijeh disse que seu objetivo com o experimento é tornar o Standard e outros projetos de código aberto mais saudáveis.

“Por motivos complexos, as empresas geralmente hesitam ou não querem financiar o OSS diretamente”, disse ele. “Quando isso acontece, nunca é suficiente e nunca chega a pacotes que são dependências transitivas (ou seja, pacotes que ninguém instala explicitamente e, portanto, ninguém sabe que existem). Essencialmente, temos um bem público que é consumido por um grande número de usuários, mas pelo qual quase ninguém paga. Felizmente, existe um modelo de financiamento que geralmente funciona para bens públicos como este – anúncios.”

Aqui está um exemplo do anúncio LogRocket que fez parte do experimento inicial:

Enquanto alguns desenvolvedores comunicaram suporte a mantenedores de código aberto para monetizar seus projetos da maneira que escolherem, a maioria dos comentários no GitHub, Hacker News, Reddit e mídias sociais criticaram fortemente essa abordagem específica.

William Hilton, desenvolvedor da Stoplight, especulou sobre as consequências desse tipo de publicidade se tornar um modelo de financiamento popular:

Eu me preocupo que a instalação do npm se torne apenas uma longa trilha de anúncios de banner, embora eventualmente e não seja dimensionada. Porque se cada pacote npm adicionar anúncios, a visibilidade de cada anúncio diminuirá. (Curiosamente, os “imobiliários” mais valiosos serão os pacotes cujo banner é exibido por último, então, se ele se tornar um “race-to-the-bottom” literal, as pessoas podem adicionar instruções sleep aos seus scripts pós-instalação para que sejam exibidos mais próximos do inferior. Que experiência de instalação distópica!)

Ele também observou que o Yarn bloqueia a saída de scripts pós-instalação, que neste caso serviriam como bloqueio de anúncios embutido. O mantenedor do Yarn entrou na discussão com mais contexto.

“Como mantenedor do Yarn, sou fortemente contra esse padrão, embora não pelas razões que você possa pensar”, disse Mael Nison. “Os scripts pós-instalação desotimizam os pacotes e interrompem os fluxos de trabalho.

“O Yarn já não imprime os logs de compilação a menos que eles façam as instalações falharem, então esse script pós-instalação não teria nenhum efeito visível para nossos usuários. Ainda assim, valorizo ​​muito a saúde do ecossistema, tanto do ponto de vista dos mantenedores quanto dos usuários, e ficaria feliz em discutir como poderíamos satisfazer esse caso de uso de maneira mais integrada e menos intrusiva.”

Como este é um experimento mais recente e não se tornou popular, não está claro se o npm pode decidir bloquear todos os métodos de veiculação de anúncios através do terminal no futuro. Um novo módulo chamado No CLI Ads foi criado em resposta ao módulo de financiamento de Aboukhadijeh. Ele bloqueia a exibição de anúncios na saída do console. npm-adblock é uma alternativa que funciona de uma maneira diferente. A existência de formas simples, embora inconvenientes, de bloquear esses tipos de anúncios pode ser tudo o que é necessário para secar qualquer fluxo de receita potencial.

O feedback sobre esse experimento demonstra que há um amplo suporte para encontrar uma solução para o problema do financiamento de código aberto, mas a maioria concorda que os anúncios de terminal não são uma opção viável. Na verdade, muitos comentaristas identificaram essa abordagem como a coisa mais irritante que um mantenedor de pacotes pode fazer, além de remover o pacote. Os desenvolvedores não desejam receber spam durante a instalação de uma dependência. Um comentarista descreve seu terminal como “a última fortaleza” e “refúgio de paz” que não veicula anúncios de senhores corporativos.

“Vender espaço publicitário não é inovador”, disse o desenvolvedor Matthias Hogerheijde. “E é particularmente inútil em meus logs. Para mim, o problema é mais que eu não quero coisas que não me ajudem nos meus logs. Concordo plenamente em colocar seu 'suportado pela empresa X' no leia-me. Isso me ajuda a entender, isso ressoa em mim quando vejo certas empresas doando dinheiro para OSS. Eu também quero viver em um mundo perfeito onde cada desenvolvedor possa viver, pagar aluguel e trabalhar apenas em projetos que goste. Esse mundo perfeito para mim não inclui anúncios no meu terminal.”

Os comentaristas do Reddit deram alguns golpes bem-humorados na ideia, escrevendo anúncios de amostra que interrompem o processo de construção:

Linode retira patrocínio do experimento de anúncios de terminal da Standard

Os usuários do Standard.js que estavam insatisfeitos com os anúncios em seus terminais reclamaram com os patrocinadores e a Linode decidiu remover seu anúncio do experimento.

“Reconsideramos depois de refletir sobre a reação da comunidade de desenvolvedores”, disse um representante da Linode no Twitter. “Ainda apoiamos apaixonadamente o software de código aberto junto com o @feross, mas seremos mais cuidadosos ao experimentar no futuro enquanto continuamos inovando.”

Antes de interromper o experimento, Aboukhadijeh informou que havia levantado US$ 2.000, o suficiente para financiar cinco dias de seu tempo para lançar o Standard 14.

“Se conseguirmos arrecadar fundos adicionais, a próxima coisa em que gostaria de me concentrar é o suporte a TypeScript pronto para uso no StandardJS (uma das solicitações de recursos mais comuns!) muitos dos quais estão atualmente sem manutenção)”, disse Aboukhadijeh. “Se outras pessoas da comunidade estiverem interessadas em liderar qualquer uma dessas questões, gostaria de direcionar alguns fundos para você.”

O experimento não está totalmente fora da mesa, já que parece ter cumprido um dos objetivos imediatos de Aboukhadijeh, apesar de incomodar (e em alguns casos enfurecer) a comunidade de desenvolvedores.

Quatro dias atrás, o Standard bloqueou o tópico do GitHub discutindo o novo modelo de financiamento depois que ele ficou muito aquecido. Os mantenedores do projeto estão agora avaliando essa iteração do experimento, mas a discussão vai além da simples questão de saber se os desenvolvedores gostam de anúncios em seus terminais. Um novo tópico no repositório do projeto, intitulado “O que há de errado com o Open Source agora?” desviou parte do feedback negativo para uma discussão mais ampla e produtiva.

O experimento reacendeu conversas importantes sobre a sustentabilidade do código aberto e para onde os mantenedores do projeto querem vê-lo no futuro. Em um tweet recente, Aboukhadijeh compartilhou um link para uma situação particular que um mantenedor enfrentou ao oferecer suporte a uma biblioteca gratuita de realce de sintaxe.

Depois de receber comentários e e-mails urgentes após um lançamento que continha erros causando a quebra de dependências, Ivan Sagalaev, o autor original do highlight.js, resumiu apropriadamente o estado atual do relacionamento entre empresas e projetos de código aberto:

Caros colegas engenheiros, por favor, tomem este problema de construção como uma oportunidade para explicar aos seus empresários em particular que toda a sua propriedade intelectual é uma camada fina sobre uma base instável de código aberto mantida preguiçosamente por amadores ou paga por outras empresas que seus próprios objetivos em mente.

Se eles realmente querem estabilidade, eles têm que investir nisso, por exemplo, contratando engenheiros para lidar com uma infinidade de dependências, manter bifurcações locais estáveis, contribuir com patches upstream ou qualquer outra coisa - o ponto principal é que não deve parecer 'apenas funciona 'em pó de fada.