Logo pt.androidermagazine.com
Logo pt.androidermagazine.com

O que o garfo é um 'garfo'?

Índice:

Anonim

Nos últimos dias, você provavelmente já ouviu a palavra "bifurcação" mais vezes do que pode contar. O Facebook bifurcou isso (embora não o fizesse), a Amazon bifurca isso, a equipe do Chrome bifurcou toda a web e assim por diante. Enquanto todo mundo está falando sobre quem está bifurcando quem, ninguém se preocupa em explicar exatamente o que é bifurcação e por que tantas pessoas têm um problema com isso.

Bifurcação, ou quebra, teve uma má reputação há 20 anos, uma vez que tendia a dividir os desenvolvedores em facções separadas que não estavam compartilhando o código entre si. Nos dias de coisas como a divisão do Gnu-Emacs / XEmacs, isso era importante porque não havia quase tantas pessoas capazes de trabalhar nesses grandes projetos de código aberto, e ter duas filiais ou garfos significava que demoraria mais para adicionar recursos e resolver problemas de ambos os lados. Em alguns casos, isso ainda acontece, tenho certeza, mas, na maioria das vezes, há muitos desenvolvedores que podem preencher o vazio deixado por aqueles que têm uma visão separada e usam o código para segui-lo. Mas algumas pessoas nunca esquecem, e o estigma associado aos bifurcadores é passado para baixo. Dito tudo isso, não podemos fingir que garfos ruins não acontecem. Só precisamos olhar além do ato antes de tomarmos nossas decisões.

Sei que alguns de vocês sabem o que tudo isso significa e estão apenas tentando ignorar todo o barulho, mas para muitos é confuso. Vamos tentar consertar isso.

O que é uma bifurcação de software e como isso afeta o Android?

Pense no Android como um monte de código. Existem duas partes - as partes de código aberto, que é o AOSP, e as partes proprietárias que o Google guarda para si. Se alguém quiser usar o Google Android e fazer alterações, ele fará o download do código para usar como base e formará seu próprio projeto. A Samsung faz isso, a HTC faz isso e seu desenvolvedor de ROM favorito pode fazê-lo. Sempre que alguém pega o código existente e inicia um projeto independente (que é uma distinção importante) com base nele, eles criaram um fork. Muitos desenvolvedores fazem check-out do código, editam partes dele e depois enviam suas alterações de volta na íntegra, o que não é uma bifurcação.

A Amazon levantou algumas sobrancelhas quando bifurcou o Android para criar o sistema operacional para a linha Kindle Fire. Mas, no lado do código-fonte aberto, não foi diferente do que a Motorola fez com o Cliq, ou a HTC com o Hero - ou o que a Samsung faz agora para os dispositivos da série Galaxy. É assim que muitos grandes projetos de código aberto funcionam. Todo fornecedor (exceto talvez a Amazon) trabalha com o mesmo básico, provavelmente relatando bugs e enviando correções de volta ao longo do processo, para criar sua própria opinião sobre o produto final.

O Facebook não bifurcou o Android. Ele usou o sistema de intenções do Android (uma maneira como os aplicativos podem trabalhar entre si e compartilhar no Android) e criou um grande aplicativo que inclui adicionalmente uma casa substituta. Dentro da caixa de areia, eles podem fazer o que quiserem ou precisarem, e desde que usem as intenções do Android, poderão se comunicar com o resto do sistema. Se você quiser ser técnico, a HTC pode ter forjado o Android para funcionar melhor com o Facebook Home no HTC First, pois menciona algumas alterações feitas para melhor compatibilidade. Saberemos mais sobre o que eles fizeram quando o telefone chegar.

De qualquer forma, o código de bifurcação nem sempre é uma coisa ruim e não merece toda a negatividade que você ouve quando alguém o menciona. O analista da indústria, Stephen O'Grady, resume bem, eu acho:

Vale ressaltar, no entanto, que da perspectiva do cliente, garfos ou variantes não são universalmente ruins. Embora as várias versões do Android possam representar decisões infelizes de design por parte dos fornecedores responsáveis ​​por elas, os aplicativos são na maioria dos casos compatíveis de dispositivo para dispositivo, assumindo a equivalência de versão.

Ter aplicativos compatíveis de dispositivo para dispositivo é o motivo pelo qual o Android foi projetado. Código de bifurcação não faz isso não acontecer. Mas outras coisas fazem.

O outro lado da bifurcação Android

Na China, você pode comprar um telefone de uma operadora que executa o Android, mas não possui serviços do Google? Assim como o Kindle Fire, ele é construído a partir do código Android do Google (às vezes não modificado), mas não foi enviado e testado para ser compatível com o Google e incluir itens como o Gmail ou o Google Play. Esses aplicativos e os diversos arquivos de sistema que eles precisam executar não são de código aberto e você não pode apenas incluí-los sem a permissão do Google.

Além de uma experiência de usuário "diferente" (não vou dizer que é "pior", apenas diferente) sem esses aplicativos, eles podem parecer e se parecer com um telefone Android que você compra da Verizon ou da AT&T. Eles também podem parecer e se sentir muito diferentes, como a Amazon fez. Mas nada disso ocorre porque eles usaram o código Android do Google - foi uma decisão consciente de não fazer um dispositivo "certificado" do Google. O Google apresenta o Android como uma plataforma de aplicativos e um conjunto de estruturas de aplicativos. Não incluir os aplicativos de serviço do Google não o torna menos uma plataforma de aplicativos. Obviamente, imaginamos que o Google preferiria que todos os dispositivos Android e Android usassem os serviços do Google, mas não existe uma regra rígida que diga que um fornecedor deve fazê-lo.

Criar dispositivos sem os aplicativos do Google não tem nada a ver com bifurcar o Android. Isso pode tornar os dispositivos menos desejáveis ​​ou, um dia, o telefone Android definitivo pode ser construído sem os aplicativos do Google, mas pode acontecer sem o código de bifurcação. Todos somos culpados de juntar as duas coisas, mas não devemos fazê-lo.

Bifurcação é apenas uma coisa

Não é bom que os OEMs desenvolvam o Android e trabalhem em seu próprio projeto com o código. Não é ruim que os OEMs utilizem o Android e trabalhem em seu próprio projeto com o código. É apenas uma coisa que todos eles fazem.

Além do fã-clube do Nexus, você não pode me dizer que a Samsung ou a HTC arruinaram o Android digitando o código e desenvolvendo-o. Eles adicionaram recursos, mantendo tudo compatível para que os aplicativos criados para o "Android" de acordo com as diretrizes do desenvolvedor funcionem perfeitamente. E eles consistentemente entregam dispositivos que as pessoas desejam comprar. Eu acho que isso é exatamente o que o Google tinha em mente para o Android. Eles sabiam que, eventualmente, alguém iria um pouco mais longe e criaria algo que não é totalmente compatível com "Android", mas tudo bem. Os usuários desses dispositivos ainda estão na Internet, e os aplicativos da web móvel do Google são bastante decentes.

Felizmente, agora você sabe um pouco mais sobre o que as pessoas querem dizer quando falam em bifurcar o Android.