Bifurcação

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Question book.svg
Este artigo não cita fontes fiáveis e independentes. (desde setembro de 2013). Por favor, adicione referências e insira-as corretamente no texto ou no rodapé. Conteúdo sem fontes poderá ser removido.
Encontre fontes: Google (notícias, livros e acadêmico)

Em engenharia de software, uma bifurcação ou ramificação (em inglês: fork) acontece quando um desenvolvedor (ou um grupo de desenvolvedores) inicia um projeto independente com base no código de um projeto já existente, ou seja, quando um software é desenvolvido com base em outro, já existente, sem a descontinuidade deste último. O termo é também usado para outras separações de qualquer tipo de trabalho (por exemplo, há várias bifurcações da língua inglesa na Wikipédia).

O termo é particularmente usado no software livre ou de código aberto, quando uma divisão ocorre por causa de diferentes objetivos ou brigas de personalidade. Alguns vêem as bifurcações como uma fraqueza no software livre, mas outros acreditam que eles demonstram a adaptabilidade do modelo. A relação entre os times pode ser cordial ou muito dura (ver xMule e sua bifurcação aMule).

Em uma bifurcação deste tipo, ambos os lados herdam propriedade intelectual idêntica, mas tipicamente apenas o maior grupo, ou aquele que contém o arquiteto original, irá manter o nome original e o seu capital social associado. Então, existe uma penalidade na reputação associada com o bifurcação.

Isto pode acontecer no software de código fechado também, se os direitos ao código comum forem compartilhados; mas este é mais raro, como há, em geral, regras estritas sobre a propriedade do código. É mais comum no software de código fechado um desenvolvedor fazer uma bifurcação do seu próprio projeto, para desenvolver duas versões, como uma versão em janelas e outra em linha de comando.

Outro tipo de bifurcação é uma prática padrão em muitos projetos: fazer uma bifurcação estável ou de produção que será modificada apenas para correções de defeitos, enquanto uma versão de desenvolvimento continua tendo novas características adicionadas. Isto é uma prática comum no núcleo Linux, por exemplo, mas é comumente mal-interpretado na imprensa como o tipo mais problemático de bifurcação. Veja um exemplo aqui

Em alguns casos, um bifurcação pode voltar ao seu projeto original ou substituí-lo. O EGCS (Experimental/Enhanced GNU Compiler System) era um bifurcação do GCC que era mais ativo que o projeto original e foi depois considerado o projeto GCC oficial.

Outros exemplos[editar | editar código-fonte]

  • Enciclopedia Libre é um bifurcação da Wikipédia hispanófona para escapar de possíveis propagandas.
  • Pretty Good Privacy teve sua bifurcação fora dos Estados Unidos para se ver livre das restritivas leis de exportação de software criptográfico.
  • XEmacs é uma bifurcação do Emacs para suportar o ambiente Energize.
  • A divisão do BSD do AT&T UNIX.
  • As muitas variações proprietárias do UNIX — todas derivadas do AT&T UNIX e todas chamadas "UNIX", mas cada vez mais mutuamente incompatíveis. Veja guerras do UNIX.
  • O desenvolvimento do sistema de arquivos NTFS pela Microsoft foi baseado em trabalhos anteriores no HPFS que foi deixado para IBM.
  • O jogo Nethack tem muitas variantes usando o código original (dizem que o Nethack é uma bifurcação do jogo Rogue, mas seu código foi escrito independentemente).
  • OpenBSD era originalmente uma bifurcação do NetBSD, nascido de conflitos de personalidade entre os desenvolvedores do NetBSD.
  • OpenSSH foi uma bifurcação do SSH, que aconteceu porque a licença do SSH 2.x era "não-livre" (mesmo estando seu código disponível), então, uma versão antiga do SSH 1.x, que foi a última a ter licença de software livre, sofreu uma bifurcação, em alguns meses, quase todas as distribuições do Linux, versões do BSD e até mesmo alguns Unixes proprietários substituíram o SSH pelo OpenSSH.
  • O X.Org X11 foi uma bifurcação do XFree86 por uma razão muito similar da que ocasionou a bifurcação do SSH e OpenSSH. O desenvolvimento no X11 então acelerou bastante e a maioria das distribuições mudou.
  • DragonflyBSD é uma bifurcação do FreeBSD, criado para ter uma abordagem técnica diferente daquela usada no FreeBSD 5.
  • Inkscape é uma bifurcação do Sodipodi.
  • aMule é uma bifurcação do xMule.
  • Mep Installer é uma bifurcação do Inno Setup.
  • Apple Inc. WebCore é uma bifurcação do KDE KHTML 3.1, esta tecnologia é usada em dois navegadores: Safari e Konqueror.
  • Mageia é uma bifurcação do Mandriva Linux.

Ligações externas[editar | editar código-fonte]