Open source: o que é e como funciona o código aberto?

Open source: o que é e como funciona o código aberto?
Bruno Divino
Bruno Divino

Compartilhe

O que é um software open source?

Open source, que em português significa “código aberto”, é um modelo de desenvolvimento baseado na colaboração aberta e transparente entre desenvolvedores e desenvolvedoras de todo o mundo, que compartilham o código-fonte do software publicamente. Isso permite que qualquer pessoa visualize, modifique, utilize e distribua livremente, conforme os termos da licença.

Essa colaboração aberta, impulsionada por comunidades ativas de pessoas desenvolvedoras, usuárias e entusiastas, estimula a inovação, a qualidade e a transparência no desenvolvimento de software com Open Source Software (OSS).

Leia também: O que é Software Livre?

Banner promocional da Alura, com um design futurista em tons de azul, apresentando dois blocos de texto, no qual o bloco esquerdo tem os dizeres:

História da open source

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

Durante boa 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 pessoas desenvolvedoras para criar o seu produto.

Após a finalização, o sistema 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 ou usuária final.

Porém, com o movimento software livre, os princípios de outros modelos de negócios se fortaleceram cada vez mais.

No início, muito utilizado em ambientes acadêmicos, o novo modelo consistia em compartilhar o código-fonte do software com a comunidade de tecnologia e, dessa forma, impulsionar o seu desenvolvimento, o que garantiu uma maior visibilidade do projeto a todos os usuários e usuárias.

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](https://pt.wikipedia.org/wiki/Eric_Steven_Raymond) e [Bruce Perens](https://pt.wikipedia.org/wiki/Bruce_Perens) fundaram a [_**Open Source Initiative (OSI)**_](https://opensource.org/), com o objetivo de estabelecer definitivamente os conceitos por trás desse novo modelo, já utilizado por muitas pessoas.

O foco inicial foi selecionar as técnicas de desenvolvimento de software utilizadas pelos adeptos e adeptas 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. Neste cenário surgiu o open source.

Qual a diferença entre 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, também não são sinônimos.

Para entendermos melhor o que é cada termo, veja a explicação abaixo:

O que é software livre?

Software Livre é um movimento filosófico e político cujo objetivo é garantir à comunidade de tecnologia a liberdade de executar, copiar, distribuir, estudar, mudar e melhorar o software em questão, o que não significa necessariamente a monetização do produto.

A partir desses conceitos, um novo conjunto de técnicas e metodologias para desenvolvimento de software foi ganhando forma.

O que é open source?

Já o open source se refere ao modelo de negócio empregado pela comunidade do software livre para o desenvolvimento de seus projetos, sem conexão com a filosofia característica do movimento.

Agora que ficou claro o que é software open source, é importante destacar que todo projeto de software livre é open source, porém nem todo projeto open source é um projeto de software livre.

Um exemplo disso é uma solução open source que depende de códigos proprietários para funcionar, isso contraria a filosofia do software livre, que defende o desenvolvimento de sistemas inteiramente com código aberto.

O nome comumente dado ao projeto desenvolvido na filosofia do software livre e com a prática do open source é Free/Open Source Software (FOSS).

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

Cases de sucesso de open source

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, o projeto tinha o objetivo de ser uma versão de código aberto do sistema operacional Minix.

Atualmente, ele pode ser considerado um dos softwares mais utilizados e bem sucedidos de todos os tempos, pois está presente em vários sistemas operacionais, inclusive 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 são removidas.

A empresa Red Hat foi uma das primeiras a conseguir construir um modelo de monetização bem-sucedido por meio do Linux.

A princípio, a companhia começou oferecendo sua própria distribuição de um sistema operacional Linux, o Red Hat Enterprise Linux, para organizações 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 em 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.

Quer saber a programar com Linux? Confira nosso curso exclusivo para iniciantes nesse sistema e conheça todas as possibilidades dessa tecnologia.

Leia também: .NET e o Open Source

Licenças para software open source

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.

Ela precisa compactuar com algumas características que definem o open source, como:

  1. Redistribuição livre: a licença não pode restringir a venda ou a distribuição gratuita do software. Também não pode aceitar royalty ou quaisquer outras taxas no caso de venda.

  2. Código-fonte: o programa deve incluir o código-fonte ou mostrar uma forma de conseguí-lo, além de permitir uma forma compilada deste código. Omiti-lo não é permitido.

  3. Trabalhos derivados: a licença deve permitir modificações e trabalhos derivados, inclusive garantir as suas distribuições sob a mesma licença do software original.

  4. Integridade do código-fonte do autor ou autora: a licença de software open source pode restringir a distribuição do código modificado apenas se permitir a distribuição de “patch files” junto ao código-fonte, visando possibilitar a modificação do programa em momentos específicos.

  5. Não discriminação a indivíduos ou grupos: é proibido discriminar pessoas ou grupos ao seu uso.

  6. Não discriminação a campos de empreendimento: não é possível 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 de um software open source não podem ser específicos a um produto, ou seja, os direitos atribuídos ao projeto não devem depender dele fazer parte ou não de uma distribuição específica.

  9. A licença não pode restringir outro software: não é permitido fazer restrições a outros softwares distribuídos juntamente ao sistema 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.

Licenças mais usadas no open source

Algumas das licenças mais utilizadas que compactuam com os termos do open source são:

Para saber mais sobre essas licenças, acesse o nosso artigo sobre como escolher uma licença para seu projeto e descubra qual é o tipo ideal para o seu sistema.

Eventos sobre open source

Para quem gosta de softwares livres e projetos open source, existem diversos eventos sobre o tema pelo mundo. Conheça dois dos mais famosos:

Hacktoberfest

O Hacktoberfest é um evento online 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, além de compartilhar experiências e o amor pelo open source.

Imagem da página inicial do website do Hacktoberfest.

FLISOL

FLISOL

O Festival Latino Americano de Software Livre (FLISOL) tem como missão central promover o uso do software de código aberto em toda a América Latina.

Para isso, o evento apresenta ao público a filosofia por trás do movimento, demonstrando sua abrangência, os avanços conquistados e o desenvolvimento contínuo da área.

Por meio de palestras, workshops, oficinas e outras atividades, o FLISOL gera um espaço de aprendizado e troca de experiências, incentivando a adoção e o desenvolvimento de soluções em código aberto na região.

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.

Enquanto empresas que utilizam software proprietário dependem de equipes internas, muitas vezes com milhares de pessoas desenvolvedoras, o open source conta com uma comunidade global de mais de 30 milhões de profissionais de tecnologia que revisam, aprimoram e contribuem ativamente para a evolução dos projetos.

Essa colaboração massiva resultou em inúmeras inovações e continua a impulsionar o desenvolvimento de softwares incríveis.

Para saber mais sobre o universo do software livre e open source, confira o episódio do nosso podcast sobre o tema: Open Source - Hipsters Ponto Tech #205

Como estudar open source?

Após descobrir o que significa open source, seus objetivos e suas principais utilizações, chegou a hora de colocar a mão no mouse e começar a estudar o que é código aberto, além de outras áreas da programação.

Não sabe por onde começar? Aprenda com professoras e professores renomados e tenha acesso a diversos Cursos sobre Programação na Alura — a maior plataforma de tecnologia do Brasil. Confira nossos planos!

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