Não se deixe enganar, o open source é egoísta

Empresas não apóiam o código aberto por razões puramente altruístas. Elas esperam um retorno do investimento

Author Photo
6:01 pm - 06 de setembro de 2021
open source

Um amigo recentemente me enviou uma DM no Twitter, sugerindo que o que a AWS realmente precisa é “um projeto [de código aberto] carro-chefe” para impulsionar sua boa fé no open source. Ele então ofereceu alguns exemplos do que outros fizeram: “Onde está o Android, Kubernetes, Tensorflow, VS Code da AWS?” A maioria deles é do Google, com exceção do vscode, que é um projeto da Microsoft (não deve ser confundido com o Visual Studio Code, que é baseado no vscode, mas não é em si um código-fonte aberto). É um argumento familiar, mas não persuasivo. Afinal, a AWS tem o Firecracker, o CDK e outros projetos de código aberto. Mas esse não é realmente o problema.

Meu problema é com a sugestão implícita de que as empresas contribuem com código aberto por altruísmo, que construíram reputações positivas de open source abençoando o mundo com paz, amor e código-fonte aberto. Isso torna os tweets inteligentes, mas é uma narrativa falsa. Os desenvolvedores podem contribuir pelo puro amor ao código; as empresas não. Nunca.

Portanto, é útil perguntar por que uma empresa contribuiu ou não com o open source.

O open source é um trabalho árduo

Talvez você tenha trabalhado para empresas com recursos ilimitados. Eu não. Mesmo organizações incrivelmente ricas financiadas por grandes sucessos como o negócio de publicidade do Google, Adobe Photoshop, Microsoft Windows e Office, etc., sempre têm recursos finitos.

Agora, combine isso com a realidade de que o código aberto é difícil.

Quão difícil? Matt Klein, um engenheiro sênior da Lyft e fundador do bem-sucedido projeto de código-fonte aberto Envoy, diz que é muito trabalhoso. Não apenas a codificação, mas todas as outras coisas (marketing, desenvolvimento de negócios etc.) que fazem com que um projeto seja bem-sucedido. Pior, não há como saber com antecedência se todo esse trabalho valerá a pena: “Os benefícios não são muito claros. Não é um gol rápido. Você não sabe se vai ganhar e, se não ganhar, é um resultado negativo líquido.”

Mesmo se você for um desenvolvedor não afiliado que constrói código-fonte aberto em seu tempo livre, as demandas de seu tempo continuam aumentando, como explicou o cofundador da Tidelift, Luis Villa. “Os desenvolvedores claramente atendem a seus próprios interesses, aprendendo programação básica e habilidades pessoais. É menos claro que eles atendem a seus próprios interesses ao se tornarem especialistas em questões que, em seus trabalhos diários, são provavelmente delegadas a especialistas, como compras, jurídico e segurança.” Ainda assim, um mantenedor de projeto de código aberto precisa cada vez mais pensar sobre a segurança de ponta a ponta de seu projeto, licenciamento em nível de arquivo e muito mais. É muito trabalhoso, para usar a frase de Klein.

É por isso que a Lyft agora avalia se deve abrir o código-fonte com base no fato de eles acharem ou não que podem “vencer” com o projeto, atraindo interesse externo suficiente para fazer valer a pena todo o trabalho. “Não sou um purista do código aberto”, diz Klein. “Eu sou um capitalista.”

Ele não está sozinho.

O ‘porquê’ do código aberto

Podemos elogiar o Facebook e o Google por suas contribuições para softwares de inteligência artificial (IA) de código aberto, como PyTorch e TensorFlow, respectivamente, mas não nos iludamos com o fato de que as empresas lançaram este código por incrível benevolência. No passado, eu falei sobre empresas de nuvem usando código aberto como rampas. Recentemente, o Brookings Institution Fellow Alex Engler escolheu este tema, sugerindo que “para o Google e o Facebook, o código aberto de suas ferramentas de aprendizagem profunda (TensorFlow e PyTorch, respectivamente) pode ter [o efeito de] fortalecê-los ainda mais em seus posições.” Meia década após o lançamento do código, essas empresas ainda fazem a maior parte do desenvolvimento (o que é tão verdadeiro para a AWS e seus projetos Firecracker e CDK e Microsoft com vscode, para que você não pense que estou escolhendo o Google e o Facebook).

Por que isso importa? Porque o código aberto dá a ambas as empresas uma alavanca estratégica, argumenta Engler: “Ao tornar suas ferramentas as mais comuns na indústria e na academia, o Google e o Facebook se beneficiam da pesquisa pública conduzida com essas ferramentas e, além disso, eles manifestam uma pipeline de cientistas de dados e engenheiros de aprendizado de máquina treinados em seus sistemas. Em um setor com competição acirrada por talentos de IA, o TensorFlow e o PyTorch também ajudam o Google e o Facebook a fortalecer sua reputação como empresas líderes a trabalhar em problemas de IA de ponta. ”

Não estou sugerindo que as empresas sejam ruins por fazer isso. Estou simplesmente sugerindo que as empresas não contribuam com códigos por caridade. Os recursos são finitos. Se uma empresa gasta dinheiro e recursos para contribuir com código, é porque ela fez as contas e acredita que terá um retorno sobre o investimento.

Vejamos a Microsoft como um exemplo.

Alguns exemplos de open source capitalista

A Microsoft é o maior contribuidor de código aberto do mundo, medido pelo número total de funcionários que contribuem ativamente no GitHub. (Sim, eu sei que esta é uma maneira imperfeita de medir. Ficaria feliz em ouvir suas alternativas.) Por que a Microsoft contribui? Há alguns anos, argumentei que, muitas vezes, “Open source é o que os oprimidos fazem para vencer”. Apesar de seu peso no desktop e no data center corporativo, a Microsoft costumava ser um erro de arredondamento na nuvem. Uma maneira pela qual a empresa buscou ganhar o amor do desenvolvedor e um lugar na mesa da nuvem foi se metamorfoseando de pária do open source em herói do open source. Demorou anos, mas está pagando dividendos em termos de aumento da participação de mercado do Microsoft Azure.

Depois, há o Google. Além de seus projetos de alto perfil como Kubernetes (uma salva de abertura na guerra multicloud, que se tornou uma cunha competitiva primária para o Google) ou Android (ajudando a desalojar o bloqueio da Apple no mercado de smartphones), o Google também foi rápido em parceria com o open source corporativo. Mas esse trabalho, disse o diretor de open source do Google Chris DiBona em 2019, não se deve a “algum tipo de negócio mágico generoso”. Era uma forma de “dar aos clientes o que eles querem”. Na época, também passou a ser uma forma de posicionar o Google Cloud com eficácia em relação ao AWS de seu concorrente.

E quanto à AWS? A AWS, sem dúvida, teve menos necessidade de abrir o código-fonte de seu código. Porque? Como líder do mercado de nuvem, qualquer coisa que potencialmente ajude os concorrentes a alcançá-la provavelmente não obteria aprovação dentro da empresa, a menos que houvesse um valor estratégico superior. Usando essa lente, vamos dar uma olhada no Firecracker, um novo tipo de tecnologia de virtualização que capacita produtos sem servidor da AWS, como Lambda. Quando anunciado, os representantes da empresa observaram: “À medida que nossos clientes adotavam cada vez mais o servidor sem servidor, percebemos que as tecnologias de virtualização existentes não foram desenvolvidas para otimizar para a natureza orientada a eventos, às vezes de curta duração, desses tipos de cargas de trabalho. Vimos a necessidade de construir uma tecnologia de virtualização projetada especificamente para computação sem servidor. ”

Eu não fiz parte da equipe que lançou o Firecracker, então não tenho conhecimento interno do motivo. Mas essas duas frases sugerem que a empresa espera que mais Firecracker seja igual a mais adoção sem servidor, o que, presumivelmente, aumentará a liderança da AWS nesse mercado. Nefasto? Absolutamente não. Mas na AWS, assim como na Lyft, Microsoft, Google e em todas as outras empresas, as coisas não são abertas, a menos que haja um motivo comercial convincente.

Talvez meu amigo esteja correto. Talvez a AWS precise abrir o código de algum grande produto carro-chefe. Mas se isso acontecer, não será porque a AWS quer melhorar sua reputação com pessoas aleatórias no Twitter (ou escritores como eu). O motivo será, como no caso do Google e outros, ajudar a impulsionar uma maior adoção de seus próprios produtos pelos clientes. É assim que os negócios (de código aberto) funcionam.

Newsletter de tecnologia para você

Os melhores conteúdos do IT Forum na sua caixa de entrada.