Ah, sim? Garfo para o senhor!

Em Onde estão todos os bilionários de código aberto? Usei este gráfico como ilustração:

Linha do tempo das distribuições Linux, 1991-2007

Como o código-fonte aberto pode ser distribuído livremente, qualquer pessoa pode pegar esse código e criar sua própria versão mutante de mashup a qualquer momento. Se qualquer outra pessoa no mundo o fará cuidado sobre sua nova versão maluca do código não está claro, mas essa não é a questão. Se alguém quiser muito, pode criá-lo ou pagar para que alguém o crie para ele. Isso é conhecido como “forking” (bifurcação). É a própria personificação do liberdade zeroe é uma parte essencial do de todas as licenças de código aberto.

Mas há bifurcações, e o existem garfos:

O que é diferente em um fork é que intenção. Em uma bifurcação, a(s) pessoa(s) que a cria(m) pretendem que a bifurcação substitua ou concorra com o projeto original que estão bifurcando.

Isso é exatamente o que aconteceu com o projeto Pidgin recentemente.

Na versão 2.4, eles alteraram a ação da GUI do campo de texto em que o usuário digita a mensagem instantânea de uma janela redimensionável manualmente para uma janela de tamanho fixo que se redimensiona automaticamente com base na quantidade de texto digitado. Aparentemente, essa parece ser uma mudança pequena, mas provocou uma enorme revolta dos usuários! Por quê?

É por isso que os senhores estão revoltados:

Janela de entrada do Pidgin

Os desenvolvedores, por qualquer motivo, não desistiram e se recusaram a ceder. O senhor pode ler alguns dos comentários no ticket do bug para se ter uma ideia, mas o teor geral era combativo, beirando o hostil. O bug acabou sendo fechado como “não será corrigido”.

A resposta da comunidade foi rápida: Ah, sim? O senhor é um garfo!

O Funpidgin é uma bifurcação do popular cliente de código aberto Pidgin, que permite a troca de mensagens instantâneas com mais de vinte protocolos diferentes.

O que nos diferencia do cliente oficial é que trabalhamos para o senhor. Ao contrário dos desenvolvedores do Pidgin, acreditamos que o usuário deve ter a palavra final sobre o que entra no programa.

Até o momento, cinco novos recursos foram adicionados ao Funpidgin a pedido dos usuários, e todos eles são opcionais. São essas opções que tornam o uso do Funpidgin agradável para uma grande variedade de pessoas.

O Funpidgin é um fork no sentido mais verdadeiro; os desenvolvedores pretendem substituir o Pidgin. Mas será que isso vai acontecer? Quem sabe. Há quatro resultados possíveis em qualquer bifurcação:

  1. O fork morre
    O Funpidgin definha devido à falta de atenção dos desenvolvedores e usuários. O Funpidgin acaba morrendo.
  2. A bifurcação se funde
    O Funpidgin e o Pidgin chegam a um consenso. As alterações do Funpidgin são incorporadas novamente ao Pidgin.
  3. O original morre
    O Funpidgin se torna tão popular que atrai desenvolvedores e usuários para longe do Pidgin. O Pidgin acaba morrendo.
  4. Tanto o original quanto o fork sobreviveram
    O Funpidgin e o Pidgin são bem-sucedidos em seus próprios termos, talvez por atraírem públicos diferentes ou atenderem a necessidades diferentes dos usuários.

O senhor pode encontrar exemplos de todos os quatro resultados salpicados em toda a história do software de código aberto. O senhor pode pensar que a adoção de licenças de software de código aberto levaria a dezenas, se não centenas, de versões incompatíveis e ligeiramente diferentes do mesmo material, deixando usuários e desenvolvedores perplexos. Não tenho tanta certeza. Existe um uma enorme quantidade de inércia em torno dos projetos de código aberto que sobrevivem por tempo suficiente para se tornarem populares. Considere os desafios que o projeto Funpidgin, recentemente bifurcado, enfrenta agora:

  • Uma comunidade dividida de usuários e desenvolvedores.
  • Extrair energia e atenção suficientes de um projeto estabelecido para que ele permaneça viável.
  • Diferenciar-se o suficiente do Pidgin para não ser visto como inútil ou irrelevante.
  • O projeto original do Pidgin é livre para pegar qualquer parte do código-fonte aberto do Funpidgin que considerar apropriada e incorporá-la ao Pidgin, prejudicando assim a bifurcação.

A bifurcação é incrivelmente difícil de ser feita. É uma parte dolorosa, mas necessária, da evolução do software de código aberto. Assim como na evolução real, suspeito que a maioria das bifurcações morrem em grande número e sem nome, antes de se tornarem fortes o suficiente para gerar qualquer progênie bifurcada própria. A bifurcação é a base absoluta do software de código aberto, mas também não é um caminho a ser escolhido levianamente.