Open Source - Uma breve introdução

Open Source - Uma breve introdução
Bruno Divino
Bruno Divino

Compartilhe

O que é?

Open Source (Código Aberto) é um modelo de desenvolvimento descentralizado em que diversos colaboradores contribuem para a evolução de um único projeto.

Tradicionalmente, é associado ao desenvolvimento de um software - Open Source Software (OSS) - cujo código fonte é disponibilizado sem restrições de acesso ou uso e pode ser trabalhado por qualquer desenvolvedor interessado.

Banner da Alura em fundo dinâmico azul, sugerindo tecnologia e modernidade para o Quizz Jornada Tech. À esquerda, em letras grandes, 'Quizz Jornada Tech' seguido por 'Teste seus conhecimentos em tecnologia e prepare-se para o próximo nível da sua carreira'. À direita, conectados por uma linha azul suave representando uma trilha, os tópicos: programação, front-end, inteligência artificial, ciência de dados, inovação e gestão. No final da trilha, um botão azul convidando a 'começar agora'. No canto superior direito, o logo da Alura. Clique e inscreva-se já!

História

Gif de um boneco dizendo "It's story time!"

Durante a maior parte da década de 1990, o modelo de negócio vigente para o desenvolvimento de softwares era o “Closed Source” (software proprietário), no qual grandes empresas contratavam centenas de desenvolvedores para criar o seu produto. Após finalizado, o produto era vendido sem que o código fonte fosse disponibilizado e a monetização era feita em cima da venda do produto ao usuário final.

Porém, junto com o movimento Software Livre, os princípios de outro modelo de negócios se fortaleciam cada vez mais. Primeiramente utilizado em ambientes acadêmicos, esse novo modelo consistia em compartilhar o código fonte do software com a comunidade de tecnologia e, dessa forma, impulsionar o seu desenvolvimento, garantindo uma maior visibilidade do projeto a todos os usuários.

Imagem com as fotos do Eric Raymond e Bruce Perens, fundadores da Open Source Initiative. Fontes: helisulbaran.blogspot.com; omgubuntu.co.uk.

Em 1998, Eric Raymond e Bruce Perens fundam a Open Source Initiative (OSI) com o objetivo de estabelecer definitivamente os conceitos por trás desse novo modelo, já utilizado por muitos. O foco inicial foi selecionar as técnicas de desenvolvimento de software utilizadas pelos adeptos do Software Livre e isolá-las da filosofia característica do movimento político, bem como, idealizar um rótulo-nome que evidenciasse a diferença entre ambos - Open Source.

Open Source e software livre

Gif que mostra duas versões do herói Homem Aranha apontando o dedo indicador uma para a outra.

Open Source e Software Livre não são opostos, porém não são sinônimos também, sendo bastante comum a confusão entre os dois.

Software Livre é um movimento filosófico e político cujo objetivo é garantir à comunidade de usuários a liberdade de executar, copiar, distribuir, estudar, mudar e melhorar o software em questão, não necessariamente significando a monetização do produto. A partir desses conceitos, um novo conjunto de técnicas e metodologias para desenvolvimento de software foi ganhando forma.

Imagem com os as logos da Free Software Foundation e da Open Source Initiative.

Open Source se refere, justamente, ao modelo de negócio empregado pela comunidade do software livre para o desenvolvimento de seus projetos, sem conexão à filosofia característica do movimento.

Vale destacar que todo projeto de software livre é open source, porém nem todo projeto Open Source é um projeto de software livre.

Um bom exemplo seria um projeto Open Source que possui alguns softwares closed source como pré requisitos para a sua implementação. Isso infringe os conceitos e filosofias do Software Livre, que preza por um projeto desenvolvido em sua total composição por código aberto.

O nome comumente dado ao projeto desenvolvido dentro da filosofia do Software Livre e com a prática do Open Source é Free/Open Source Software (FOSS).

Cases de Sucesso

Um dos mais famosos projetos de software a utilizar o Open Source como modelo de desenvolvimento é o Linux ou, mais precisamente, Kernel do Linux. Desenvolvido em 1991, por Linus Torvalds, tinha o objetivo de ser uma versão de código aberto do sistema operacional Minix. Hoje, pode ser considerado um dos softwares mais utilizados e bem sucedidos de todos os tempos, estando presente em vários Sistemas Operacionais e nos sistemas de smartphones Android.

Imagem com a foto do criador do linux, Linus Torvalds, e o ícone/logo do software linux representado pelo mascote Tux, um pinguim. Fonte: facesofopensource.com

De acordo com Jim Zemlin, diretor executivo da Linux Foundation, cerca de 10.000 linhas de códigos são adicionadas ao código fonte do Linux diariamente, 5.000 são alteradas e 8.000 linhas são removidas.

A empresa Red Hat foi uma das primeiras a conseguir construir um modelo de monetização bem sucedido. A princípio, a companhia começou oferecendo sua própria distribuição de um sistema operacional Linux, o Red Hat Enterprise Linux, para empresas privadas com interesse em soluções baseadas em sistema operativo. O software era gratuito e a monetização se dava em cima de serviços de suporte para o sistema. Isso foi o suficiente para fazer a Red Hat se tornar uma das líderes no seu meio, sendo comprada pela IBM por 38 bilhões de dólares em 2018.

Logo da empresa Red Hat. A silhueta de um homem usando um chapéu vermelho.

Licenças

Gif de um homem de terno mostrando uma folha de papel de forma confiante e assertiva.

Ao começar um projeto open source não basta apenas publicar o código fonte em um repositório público no Github. Para um código ser verdadeiramente Open source precisamos declarar a utilização de uma licença em nosso projeto, sendo que essa licença precisa compactuar com algumas características que definem o Open Source:

  1. Redistribuição livre: A licença não irá restringir a venda ou distribuição gratuita do software. Não aceitará nenhum royalty ou quaisquer outras taxas no caso de venda.
  2. Código fonte: O programa deve incluir o código fonte ou explicitar uma forma de conseguí-lo e deve permitir uma forma compilada deste código. Omitir deliberadamente o código fonte não é permitido.
  3. Trabalhos derivados: A licença deve permitir modificações e trabalhos derivados, permitindo as suas distribuições sob a mesma licença do software original.
  4. Integridade do código fonte do autor: A licença pode restringir a distribuição de código modificado apenas se houver a permissão da distribuição de “patch files” com o código fonte para o propósito de modificar o programa em um determinado momento.
  5. Não discriminação a indivíduos ou grupos: A licença não pode discriminar qualquer pessoa ou grupo de pessoas.
  6. Não discriminação a campos de empreendimento: A licença não pode restringir o software de ser usado em determinado campo de negócio, pesquisa ou empreendimento no geral.
  7. Distribuição da licença: Os direitos atribuídos ao projeto pela licença são aplicados a todas as redistribuições, não havendo a necessidade de uma licença adicional para os mesmos.
  8. A licença não pode ser específica a um produto: Os direitos atribuídos a um projeto não podem depender do projeto ser parte de uma distribuição de software específico.
  9. A licença não pode restringir outro software: A licença não pode impor restrições a outros softwares distribuídos juntamente dos software licenciado.
  10. A licença precisa ser Tecnologicamente Neutra: Nenhuma provisão da licença pode ser baseada em qualquer tecnologia individual ou estilo de interface.

Algumas licenças mais utilizadas e que compactuam com esses termos do Open Source são:

Para saber mais sobre licenças, acesse o nosso artigo Como escolher uma licença para seu projeto

Eventos

Hacktoberfest

O Hacktoberfest é um evento de celebração do Open Source promovido pela DigitalOcean. Ao longo de todo o mês de outubro a comunidade de tecnologia se une para contribuir com diversos projetos e interagir, compartilhando experiências e o amor pelo Open Source.

Imagem da página inicial do website do Hacktoberfest.

FLISOL

O Festival Latino Americano de Software Livre (FLISOL) tem como objetivo promover o uso de Software Livre, mostrando ao público em geral sua filosofia, abrangência, avanços e desenvolvimento

Imagem da logo do FLISOL.

Conclusão

O Open Source enfrentou muitos preconceitos em seus anos iniciais, entretanto se mostrou um modelo extremamente eficaz no desenvolvimento de software. Ao passo que as empresas que utilizam o software proprietário necessitam de equipes de 30 a 50 mil desenvolvedores trabalhando no código fonte, as empresas que utilizam o Open Source têm a sua disposição mais de 30 milhões de pessoas da comunidade de tecnologia que diariamente fazem revisões dos códigos, sugerem melhorias e participam ativamente na evolução do projeto. Diversos projetos incríveis surgiram do Open Source e muitos ainda estão por vir!

Para saber mais sobre o universo do Software Livre e Open Source, confira o episódio do nosso podcast sobre essa temática:

Open Source - Hipsters Ponto Tech #205

Bruno Divino
Bruno Divino

Bruno cursa Tecnologia em Análise e Desenvolvimento de Sistemas e faz parte do time de Instrutores aqui da Alura, tendo foco em Python/DevOps. Seu objetivo é auxiliar da melhor forma possível cada aluno em sua jornada de aprendizagem e fomentar constantemente a paixão por tecnologia.

Veja outros artigos sobre DevOps