Open Source - Uma breve introdução

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.

História

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.

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

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.

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.

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.

Licenças

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:
- 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.
- 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.
- 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.
- 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.
- Não discriminação a indivíduos ou grupos: A licença não pode discriminar qualquer pessoa ou grupo de pessoas.
- 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.
- 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.
- 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.
- 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.
- 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.

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

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: