12/01/2015 | Autor: Igor Abade V. Leite | Categoria: Técnico | Comentários

GitHub, Visual Studio Online ou CodePlex?

Com tantas opções para hospedar um projeto de software, é fácil de se perguntar: para onde eu vou?

Longe de ser um guia definitivo com as respostas para todas as suas perguntas, a ideia deste post é compartilhar algumas ideias sobre o que considerar ao escolher o repositório (de preferência gratuito!) para seu próximo projeto.

Naturalmente existe uma enormidade de opções no mercado; comparar todas elas seria humanamente impossível. Por isso, me limitei àquelas que estão mais próximas da minha realidade – GitHub, CodePlex e Visual Studio Online. Não se esqueça, YMMV.

Então veja algumas perguntas que você deve se fazer para ajudar a decidir o que fazer:

Projetos/repositórios públicos ou privados?

Primeira coisa que você precisa saber é: você quer criar um repositório público ou privado?

Repositórios Públicos

Se você quer criar um repositório público para um projeto – por exemplo, para hospedar um projeto open-source, suas opções são GitHub ou CodePlex. Isso porque atualmente o Visual Studio Online não suporta acesso anônimo e, portanto, não é a melhor solução para projetos públicos. Agora, a menos que você não queira usar Git de jeito nenhum (por algum motivo seu projeto precisa estar hospedado no Mercurial ou no Team Foundation Version Control), a verdade é que não faz o menor sentido optar pelo CodePlex. A primeira opção de quase todo projeto OSS hoje em dia é pelo GitHub. As funcionalidades de interação social criaram uma comunidade bastante coesa ao redor do GitHub, o que por consequência fomentou o surgimento de todo um ecossistema de ferramentas e soluções ao redor do GitHub. Portanto, mais uma vez: a menos que você não queira usar o Git, a escolha fica fácil: opte pelo GitHub. Até a Microsoft está fazendo isso.

Repositórios Privados

No caso de repositórios privados, a coisa fica um pouco diferente. É que o GitHub cobra para hospedar repositórios privados. No plano mais barato, “Micro”, paga-se US$7/mês para até cinco repositórios (“projetos”). Não existe nenhum plano gratuito no GitHub que permita repositórios privados.

Por outro lado, o Visual Studio Online oferece um plano gratuito para repositórios privados ilimitados (“projetos ilimitados”) para até cinco desenvolvedores. Se você precisa de um repositório para um pequeno time, o Visual Studio Online pode ser (surpreendentemente) uma opção mais interessante que o GitHub. Se você precisar de mais que cinco usuários por mês no Visual Studio Online, tem duas opções:

CodePlex, naturalmente, não é opção: não é possível criar repositórios privados nele. Em suma:

Para poucos projetos e muitos desenvolvedores, o GitHub é mais barato. Para muitos projetos e poucos desenvolvedores, o Visual Studio Online é o mais em conta.

Open Source ou Closed Source?

Ué, não é a mesma coisa da primeira pergunta? Bem, não necessariamente. Ter um repositório público não significa ter um projeto open source, da mesma forma que um repositório privado não implica em um projeto Closed Source. É bem provável que você tenha outras inplicações a considerar, além da acessibilidade do seu repositório.

Open Source

Para projetos open source serem bem sucedidos, colaboração entre estranhos é a chave. O importante é criar uma comunidade rica, onde as pessoas possam interagir facilmente e se sentirem à vontade para contribuir. Hoje, entre GitHub e CodePlex (as duas únicas opções que estamos analisando que servem para OSS) não há o que discutir. Vá para o GitHub. O CodePlex teve sua importância e cumpriu o papel que lhe cabia num dado momento. Porém, sejamos realistas: você quer que as pessoas se envolvam com seu projeto, não? Afinal, é para isso que se cria um projeto OSS. Nesse caso, não há comparação entre as ferramentas sociais do GitHub e do CodePlex. Além do mais, não podemos ignorar a base de usuários – muito maior no GitHub que no CodePlex.

Closed Source

Aqui vem o ponto mais polêmico, mas lá vai: para projetos Closed Source, prefiro o Visual Studio Online.

É lógico que o GitHub também pode ser usado para projetos Closed Source – inúmeras empresas o fazem. Porém, o GitHub não é um stack de ALM. Muitas empresas têm necessidades regulatórias que implicam na adoção de um determinado processo de desenvolvimento, ou esperam uma suíte integrada que simplifique os processos de auditoria, ou simplesmente querem ter menos dor de cabeça integrando soluções de terceiros.

Para o GitHub ser um stack de ALM e atender a essas expectativas, precisa de integração com soluções de terceiros para cobrir aspectos como testes de aplicações e integração contínua. Já no VSO já temos tudo isso à disposição numa única solução. Provavelmente a análise mais importante aqui não é a competência técnica nem as funcionalidades de cada solução.

Custo x Benefício é quem ditará o vencedor da sua preferência. Para empresas que tenham Assinaturas MSDN, a escolha é óbvia: VSO é gratuito e oferece suporte a tudo o que elas procuram. Por outro lado, no caso de ser preciso comprar assinaturas mensais o custo do VSO pode ser maior que o do GitHub – depende da quantidade de desenvolvedores. Por isso, acho que podemos declarar um empate, não?

Conclusão

A finalidade deste post não é dar as respostas a todas suas perguntas, mas principalmente ajudá-lo a começar a fazer as perguntas certas na hora de escolher seu próximo repositório. E você, o que acha? Que outros critérios você leva em consideração ao escolher um repositório?

Não deixe de compartilhar sua opinião nos comentários!

Um abraço,
Igor