Um programador norte-americano quase deitou a Internet abaixo
E se a Internet de repente fosse abaixo? O impacto que isso provocaria seria absolutamente desastroso. Grandes negócios ficariam completamente paralisados, o mundo teria de parar para se adaptar à realidade e nós mesmos teríamos de nos habituar, ainda que temporariamente, para viver sem Facebook, Twitter, Whatsapp, e-mail e tudo o mais que usamos para aceder à web.
Seria uma espécie de calamidade digital.
Porém, em março de 2016, foi quase isto que aconteceu quando um programador norte-americano apagou 11 linhas de um pacote de códigos. O efeito não foi tão grave ao ponto de “deitar” a Internet abaixo completamente, mas congestionou muitos dos sites que usamos diariamente. O pacote de códigos apagado é utilizado por inúmeros sites e aplicações, entre os quais o Facebook, Netflix e Airbnb.
O pacote em questão permaneceu com estas 11 linhas apagadas durante algum tempo provocando uma série de problemas que farão deste episódio um mau momento na história do universo da programação.
Como um programador pode condicionar o futuro da Internet?
Vamos contar a história desde o início. Tudo começa com Azer Koçulu, um programador que trabalha na cidade de Oakland, nos Estados Unidos. Entre as suas tarefas, Koçulu está responsável pelo módulo ‘left-pad’ que, apesar de consistir em apenas 11 linhas, é amplamente utilizado.
À semelhança de muitos outros programadores, Azer Koçulu estava registado na plataforma de open-source NPM. A ideia desta plataforma é servir como uma espécie de atalho para os programadores. Em vez de escrever todo o código sempre que se começa um trabalho novo, o programador pode ir copiando e colando vários módulos, de forma a chegar ao produto final desejado.
“Imagine cada módulo como uma peça de Lego. Não nos importamos necessariamente em saber como foram fabricados. Tudo o que precisamos de saber é como usar essas peças para construir o castelo”, explica outro utilizador do fórum do Github. “A nossa memória a curto prazo é finita. Quando temos estes módulos e podem ser reutilizados por outras pessoas, que por sua vez podem melhorá-los e consertá-los, todos ganham.”
O módulo utilizado por Koçulu naquele dia chamava-se Kik. No entanto, ao escolher este nome o programador não sabia que um serviço de mensagens com a mesma designação já existia. Ainda assim, o Kik não só existe – trata-se de um chat especialmente popular nos Estados Unidos – como conta com mais de 240 milhões de utilizadores no mundo inteiro.
Algumas semanas mais tarde, os advogados do aplicativo Kik entraram em contato com o programador de Oakland para pedir que apagasse o módulo do NPM por conflitos entre os nomes. Koçulu recusou-se a fazê-lo. Rapidamente, o departamento legal do Kik Messenger prosseguiu, desta vez envolvendo os responsáveis pela própria NPM.
Como consequência, o CEO da plataforma, Isaac Z. Schlueter, concordou em alterar a propriedade do módulo para o aplicativo de mensagens. Caso contrário, o pacote de Koçulu ainda estaria disponível na NPM, mas com com outro nome.
Ao tomar consciência do que tinha sido feito, o programador apagou o ‘left-pad’ e outros 271 pacotes que tinha na plataforma. “Esta situação fez com que percebesse que a NPM é a terra privada de alguém e que nela as corporações são mais poderosas do que as pessoas. E o que faço é open-source porque acredito em dar o poder às pessoas”, escreveu Koçulu num post no Medium. “Como resultado disso, não vou partilhar mais o meu trabalho na NPM e resolvi retirar todos os meus pacotes.”
A atitude do programador afetou “milhares de projetos”, segundo a NPM. Para evitar que algo do género aconteça novamente, a plataforma mudou algumas de suas diretrizes, nomeadamente a forma como um programador só pode apagar um pacote caso tenha sido publicado nas últimas 24 horas. Se não for o caso, o pacote ficará na plataforma, que entrará em contato com o usuário imediatamente.
Este episódio serviu para alertar os programadores e as plataformas, principalmente em relação à importância que algumas linhas de códigos podem ter dentro de serviços digitais. Mais do que isso: a dependência de recursos prontos para a programação.
Isso mostra a fragilidade de toda a internet ! Empresas estão mais vulneráveis ao mundo digital do que se pensa !