O que é Open Source e como utilizar

Introdução

Nesse vídeo falarei de mais uma palavra que eu ouvia no começo da faculdade e não fazia ideia do que significava: Open Source

O que é Open Source

Vamos supor que você tenha uma grande ideia de desenvolver um bot para colocar lá na nossa Comunidade do Discord e, para isso, quer dar uma olhada nos bots que já existem hoje e que são bastante utilizados para entender como funciona a separação de comandos, de permissões e várias outras coisas que um bot pode fazer. Para isso, você precisaria pegar o código desses bots existentes e realmente dar uma olhada na sua estrutura para "se inspirar".

Porém, não é tão simples assim, pois existem pessoas que desenvolvem projetos, como por exemplo um desses bots, e não deixa simplesmente o código lá público para qualquer pessoa ver. E com certeza essas pessoas tem seus motivos pra isso, ainda mais quando for algo monetizável.

Mas, existe sim uma grande quantidade de projetos que possuem o seu código público para quem quiser utilizá-lo ou melhorá-lo conforme acreditar ser necessário. Aí começam os chamados projetos open source.

Se a gente traduzir para o português, open source significa fonte aberta e, no nosso caso na área de programação, significa mais especificamente código aberto.

Ah Rafa, então todos os projetos que possuem o código aberto são considerados open source? Não exatamente.

Segundo Debian Free Software Guidelines, para ser considerado open source é necessário:

  • Código-fonte aberto: como já expliquei pra vocês, porém sempre com um cuidado de ver como cada pessoa que desenvolveu o projeto inicial estipulou em relação a alterações, porque sim, você pode contribuir com projetos open source se achar algo a ser desenvolvido. Só lembrar daquele pull request que expliquei pra vocês no meu vídeo sobre git e github.

  • Distribuição de licença: os direitos ao software devem estar disponíveis para todos que o utilizam.

  • Integridade do autor do código: a licença deve permitir a distribuição do programa construído a partir do código-fonte modificado, mas ainda pode exigir que programas derivados tenham um nome e número diferentes da versão original.

  • Distribuição Livre: o software até pode ser vendido depois de suas modificações, mas outras pessoas também terão os mesmos direitos sobre ele, não sendo restrito somente aos programadores.

  • Discriminação Zero: qualquer pessoa, independentemente de sua condição social ou financeira, deve poder utilizar um sistema open source.

  • Trabalhos Derivados: a licença do software deve fornecer permissão para que modificações sejam realizadas, bem como trabalhos derivados. Também deve permitir que sejam distribuídos, mesmo após modificação, sobre os mesmos termos da licença original.

Benefícios de trabalhar em um projeto open source

Você deve agora imaginar "ué, mas porque eu deixaria meu código aberto para outras pessoas roubarem?"

Não é bem assim, afinal, se você parar para pensar, em um projeto open source você vai poder ter muito mais gente colaborando para a melhoria daquele projeto de forma orgânica, o que torna o resultado muito positivo. É só pensar que as pessoas estarão desenvolvendo aquele projeto são as mesmas que o utilizam, conhecendo muito bem seus pontos fortes e fracos.

Tenta comparar um software que foi desenvolvido por um grupo especifico de pessoas desenvolvedoras com um software totalmente aberto para todas as pessoas que desenvolvem no mundo poderem contribuir.

Isso até soa um pouco preocupante, pensar na quantidade de gente que pode ter acesso e alterar o código, porém um projeto open source é sempre muito bem pensado desde a sua criação para que apenas features e correções realmente necessárias e testadas sejam incorporadas. Ou pelo menos deveria.

Além disso, algo incrível do universo open source é a possibilidade de customização, imagina só se todas as ferramentas que você utilizasse no dia a dia pudessem ser customizadas da maneira que você quisesse? Incrível né?

Dicas para trabalhar ou fazer algo open source

Como mencionei, um projeto open source normalmente é muito bem pensado antes de começar a ser desenvolvido. É necessário deixar claro todas as regrinhas, padrões no código, documentação bem clara e o objetivo com aquele software, além de todas as tecnologias que poderão ser utilizadas.

Sendo assim, sempre que quiser colaborar em um projeto open source tome cuidado com isso tudo antes de fazer o seu pull request. Veja se aquilo que quer desenvolver realmente vai de acordo com o objetivo daquele software e se o seu código está de acordo com os padrões estipulados também.

Muito legal né? Nós atualmente na comunidade temos alguns projetos open source em andamento que vocês podem conferir no link na descrição.

E você, alguma vez já colaborou em algum projeto open source? Me conta nos comentários que vou adorar saber!

Fontes

https://www.debian.org/social_contract#guidelines
https://www.totvs.com/blog/developers/como-funciona-um-software-open-source/
https://canaltech.com.br/produtos/O-que-e-open-source/
https://opensource.org/