Pode um developer independente causar o pânico em milhares de projectos usados por milhões de pessoas? Pode; e bastaram 11 linhas de Javascript para o fazer – ou melhor, o desaparecimento dessas mesmas linhas.
Actualmente, qualquer projecto de programação minimamente complexo recorre à utilização de módulos já existentes para as mais variadas funções.
Só que essa dependência pode também tornar-se num grande problema – mesmo algo tão insignificante como uma função para adicionar espaços à esquerda de um pedaço de texto.
Azer Koçulu é um developer que disponibiliza centenas de módulos javascript deste tipo em open-source, para que todos os possam utilizar. Uma das formas de os usar é através do package manager NPM, e foi aqui que começaram os problemas…
Um dos módulos de Azer no NPM, entre as mais de duas centenas que disponibiliza, chama-se “Kik“. Recentemente, Azer recebeu uma carta dos responsáveis pela app com o mesmo nome, para que removesse este módulo, por “infração de propriedade intelectual”; coisa que Azer recusou fazer.
Então, os advogados viraram-se para os administradores do NPM, e conseguiram que o módulo fosse retirado de qualquer forma.
Apologista do open-source e da liberdade de disponibilização do seu código, Azer não gostou da atitude, e em retaliação retirou todos os seus módulos do NPM.
“Esta situação fez-me perceber que o NPM é propriedade privada de alguém, onde as empresas são mais poderosas do que as pessoas”, disse Azer, num artigo no seu blog.
“E se eu faço código em open source, é porque acredito no numa coisa: Power to the People“, acrescentou o programador, que passou a disponibilizar o seu código no Github.
O problema é que entre os módulos que Azer removeu do NPM se encontrava o left-pad, um pequeno módulo usado para adicionar espaços (ou outros caracteres) à esquerda de um bloco de texto, e que é incrivelmente popular, sendo usado por muitos milhares de projectos.
Nos últimos 30 dias, o left-pad foi descarregado quase 2.5 milhões de vezes – o que demonstra a sua popularidade junto da comunidade de programadores.
A remoção do módulo de Azer fez com que deixassem de funcionar todos os projectos de software que por algum motivo o usavam – lançando durante algum tempo o caos na Internet.
Os responsáveis pelo NPM optaram entretanto, numa acção “excepcional” para tentar minimizar os dados e “arranjar a internet”, por repor o código do left-pad 0.0.3, a versão removida por Azer…
Servirá o caso para alertar para todos os potenciais perigos das inúmeras e inevitáveis dependências que os projectos actuais têm de muitos outros projectos.
E para pedir aos advogados que deixem de ser tão picuinhas quanto aos nomes usados por projectos open-source.
ZAP / Aberto até de Madrugada
E agora devia processá-los e obrigá-los a não usar “left-pad 0.3” pois tem direitos de autor…
Errado, se é open source, não tem direitos de autor (copyright). Aliás, é anti-direitos de auto (copyleft) o que significa que pode ser usado e modificado, sendo que a única obrigação de quem o faz, é ter de manter o código aberto para quem vier a seguir poder fazer o mesmo, e assim o software evolui e transforma-se em vez de ficar parado na prateleira do autor original.