O que é open source? Veja como funciona e exemplos de softwares de código aberto

Open source é um modelo descentralizado de desenvolvimento de softwares que busca otimizar o código-fonte por meio de esforços colaborativos

Igor Shimabukuro Victor Toledo

Open source é um modelo descentralizado de projeto que disponibiliza o código-fonte da aplicação para o público, de modo com que contribuintes possam executar, sugerir melhorias e correções ou redistribuir o programa de maneira colaborativa.

Depois que o código-fonte de uma plataforma open source é disponibilizado em um repositório, a comunidade pode estudá-lo e apontar possíveis melhorias a serem feitas mediante aprovação. Esse modus operandi é visto em sistemas open source como Android, Linux ou Mozilla Firefox, por exemplo.

A seguir, saiba o que é open source, entenda suas principais características, e confira vantagens e desvantagens de um software de código aberto.

O que é open source?

Open source refere-se a um modelo descentralizado de desenvolvimento de projetos tecnológicos, no qual o código-fonte do software é disponibilizado ao público para uso e sugestões de melhorias, inovações e redistribuições de forma colaborativa e autossustentável.

Qual é o significado de open source?

O termo em inglês “open source” é traduzido como “código aberto”, e faz alusão à acessibilidade ao código-fonte de um software. A expressão foi cunhada por Christine Peterson em 1998, diante da necessidade de uma ideia ligeiramente distinta do conceito de software livre.

Como um software open source funciona?

Inicialmente, os desenvolvedores do projeto disponibilizam o código-fonte do software criado em um repositório público (como GitHub ou GitLab). Além disso, também definem o tipo de licença open source do projeto, que ditará as regras de como o programa poderá ser usado, modificado ou redistribuído.

Uma vez que o código-fonte é disponibilizado, colaboradores podem testá-lo e sugerir solicitações (chamadas de pull requests) para melhorias e correções de bugs. Essas demandas são revisadas por membros fixos (committers), responsáveis por aplicar ou não as mudanças após análises.

O ciclo colaborativo de solicitações e alterações se repete constantemente, fazendo com que a própria comunidade fique responsável pelo suporte e manutenção do software. Paralelamente a isso, o sucesso do software pode estimular colaboradores a usarem o código-fonte para novos projetos.

Quais são as características de um software de código aberto?

A Open Source Initiative (OSI), responsável por promover e proteger o conceito de código aberto, lista 10 critérios para que um projeto ou software seja considerado open source:

  • Redistribuição gratuita: a licença não deve restringir nenhuma parte de vender ou doar o software como um componente de uma distribuição de software agregada que contenha programas de diferentes fontes;
  • Código-fonte: o programa deve incluir um código-fonte que pode ser distribuído (sem custos) ou adquirido (por um valor razoável de reprodução);
  • Projetos derivados: a licença deve permitir modificações e trabalhos derivados, que podem ser distribuídos sob os mesmos termos de licença do software original;
  • Integridade do código-fonte do autor: a licença pode restringir a distribuição direta do código-fonte modificado, desde que permita a distribuição de “arquivos de patch” com as modificações de forma separada;
  • Não discriminação contra pessoas ou grupos: a licença não deve discriminar nenhuma pessoa ou grupo de pessoas;
  • Não discriminação contra áreas ou empreendimentos: a licença não deve restringir ninguém de fazer uso do software, independentemente da área de atuação ou da finalidade;
  • Distribuição da licença: os direitos vinculados ao programa devem se aplicar a todos ao qual foi redistribuído, sem a necessidade de execução de uma licença adicional;
  • Licença não vinculada a um produto: os direitos do programa não devem depender de uma forma específica de distribuição, e devem ser mantidos mesmo em casos de redistribuições isoladas;
  • Não restrição da licença a outro software: a licença do programa não deve impor restrições a outro software que seja distribuído de forma conjunta;
  • Licença tecnologicamente neutra: nenhuma disposição da licença pode ser baseada em tecnologias individuais ou estilo de interface.

Quais são os exemplos de plataformas open source?

Plataformas open source podem envolver diferentes projetos, de sistemas operacionais a aplicativos de computador. Alguns dos principais exemplos de aplicações de código aberto incluem:

  • Linux: sistema operacional baseado em open source e software livre, cujo kernel é disponibilizado sob uma licença que permite uso, modificações e distribuição do código-fonte;
  • Android: sistema operacional de dispositivos móveis baseado no Android Open Source Project (AOSP), que é mantido pelo Google;
  • Mozilla Firefox: navegador web cujo código-fonte permite inspeções, modificações ou redistribuições com base no acordo de licença Mozilla Public License (MPL);
  • LibreOffice: suíte de aplicativos de produtividade similar ao Microsoft Office, e baseado no projeto OpenOffice.org;
  • WordPress: plataforma de gestão de conteúdo sob a licença General Public License (GPL), usado para criar e gerenciar páginas na internet.

Quais são as vantagens de um software open source?

O software open source apresenta diversas vantagens em relação a programas de código fechado. Dentre os benefícios de uso desses programas, estão:

  • Custo nulo ou reduzido: por mais que não seja uma regra, muitos softwares open source costumam ser gratuitos ou têm custos menores do que softwares proprietários;
  • Esforços colaborativos: o amplo acesso ao código-fonte do software permite um esforço conjunto da comunidade para identificação de melhorias e correções de bugs;
  • Transparência: o modelo open source permite que o código-fonte, patches de correção e alterações no código sejam disponibilizados de maneira transparente em repositórios como GitHub;
  • Confiabilidade: por conta do acesso facilitado ao código-fonte, o software open source pode ser testado por toda a comunidade, de modo a experimentar mudanças e garantir a eficácia de melhorias.

Quais são as desvantagens de um software open source?

O uso de softwares open source também tem desvantagens, principalmente tratando-se de dificuldades em um suporte contínuo e problemas de segurança devido à exposição do código-fonte. Algumas das desvantagens de um software de código aberto contemplam:

  • Exposição do código-fonte: a disponibilização do código-fonte pode facilitar estudos e análises de hackers para possíveis exploração ou invasão ao software;
  • Dependência da comunidade: contribuições e melhorias em prol do software vão depender do engajamento e participação ativa da comunidade;
  • Flexibilidade relativa: melhorias e sugestões da comunidade só serão aplicadas mediante análise dos mantenedores do projeto;
  • Complexidade: alguns softwares open source são mais complexos e têm limitações de compatibilidade, o que pode dificultar a atuação de contribuintes com menos experiência.

Qual é a diferença entre software open source e software livre?

O conceito de software open source foca na ideia de um programa cujo código-fonte é acessível pelo público. A concepção mira benefícios práticos como desenvolvimento e melhorias do programa, e pode ser enquadrada como uma ideia “mais comercial” do software livre, devido a certas condições ou restrições.

Já o software livre é um movimento com fundamentação filosófica, que luta pela liberdade de uso em programas. Além da disponibilização do código-fonte, o software livre também defende a liberdade para executar, estudar, redistribuir e modificar o programa, sem tantas restrições como no open source.

Vale destacar que todo software livre também é open source, mas nem todo open source é um software livre. E apesar de ambos os movimentos defenderem alguns conceitos em comum, seus propósitos são diferentes.

Qual é a diferença entre software de código aberto e de código fechado?

Um software de código aberto diz respeito a um programa cujo código-fonte foi disponibilizado ao público. Isso permite que a comunidade use, modifique ou redistribua o código (sob condições da licença adotada), de modo a permitir maior flexibilidade e liberdade de uso do programa open source.

Já um software de código fechado consiste em um programa do qual o código-fonte é restrito ao proprietário. Logo, suporte, diretrizes e demais modificações da aplicação ficam sob responsabilidade da empresa ou desenvolvedor, sem a exigência de uma participação ativa da comunidade.

Importante frisar que a acessibilidade do código-fonte entre um software de código aberto e código fechado também pode implicar em diferentes custos para aquisição do programa, tempo de vida útil do software, licenciamento e opções de segurança e personalização.

Relacionados

Escrito por

Igor Shimabukuro

Igor Shimabukuro

Redator

Igor Shimabukuro é jornalista graduado e pós-graduado em Mídias Digitais pela Universidade Metodista de São Paulo. Já fez de tudo um pouco na área de jornalismo, e passou por Olhar Digital e TecMasters antes de integrar o Tecnoblog. É apaixonado por videogames, Pokémon e futebol, brinca na guitarra, e não dispensa uma boa pescaria.

Victor Toledo

Victor Toledo

Analista de conteúdo

Victor Toledo é jornalista formado pela Unesp, pós-graduando em Business Intelligence e com ensino técnico em informática. Antes de entrar para o time do Tecnoblog, em 2021, escreveu sobre informática, eletrônicos e videogames no TechTudo (Editora Globo) e no Zoom. Atua na estratégia de conteúdo e SEO do Tecnoblog. É apaixonado por esportes e passa boa parte do tempo livre praticando futevôlei e assistindo todo e qualquer tipo de esporte na TV.