O que é software livre e de código aberto?
Tags: linux, opensource
Published: 2022-07-04 17:56:51

O conceito de Software Livre e de Código Aberto (que em inglês é chamado de _Free and Open Source Software_, ou a sigla _FOSS_), é um conceito que nasceu nos anos 80 para se opor ao que podemos chamar de software de código fechado (ou software proprietário), e que, na época, estava se tornando o padrão para os sistemas e programas desenvolvidos.

E na verdade, apesar dos termos Software Livre e Software de Código Aberto serem algumas vezes utilizados de forma equivalente, os conceitos em sí são diferentes, e é importante que entendamos os dois para sabermos quando estamos falando de um software livre ou de um de código aberto.

# O Software Livre (ou Free Software)

Principalmente o termo em inglês, "Free Software", pode acabar trazendo uma conotação errônea sobre o que de fato caracteriza um software livre, especialmente se traduzirmos o termo do inglês ao pé da letra, (o que seria 'software grátis'). Na verdade, o conceito de software livre não tem exatamente uma relação específica com o preço ou o valor cobrado por ele, a ideia é que um software livre não tenha nenhuma restrição ou bloqueio devido a direitos autorais (e acho que o termo em português, "livre", cai muito bem nesse sentido).

Basicamente, um software livre deve respeitar 4 liberdades essenciais, conforme definido pela [Free Software Foundation](https://www.fsf.org/), organização não-governamental com o ideal de promover o software livre:

1. A liberdade de executar o programa como você desejar, para qualquer propósito (liberdade 0).
2. A liberdade de estudar como o programa funciona, e adaptá-lo às suas necessidades (liberdade 1). Para tanto, acesso ao código-fonte é um pré-requisito.
3. A liberdade de redistribuir cópias de modo que você possa ajudar outros (liberdade 2).
4. A liberdade de distribuir cópias de suas versões modificadas a outros (liberdade 3). Desta forma, você pode dar a toda comunidade a chance de beneficiar de suas mudanças. Para tanto, acesso ao código-fonte é um pré-requisito.

Olhando para esse conceito podemos concluir que muito dificilmente um software livre conseguiria respeitar todas essas liberdades e ter qualquer forma de monetização, o que é verdade, já que um software que deve ser distribuído livremente não poderia ser cobrado. Mas essa seria uma consequência de um software livre, não a sua motivação principal.

Apesar de que alguns softwares livres serem sim vendidos, mas não com objetivo de cobrar ou restringir o uso do software, mas sim para arrecadar fundos em forma de uma contribuição ou doação para quem cria ou mantêm o software.

# O Software de Código Aberto (ou Open Source Software)

E é a partir daí que surge o conceito de "Software de Código Aberto", que veio posteriormente ao conceito de software livre, visando deixar menos ambíguo e, principalmente, mais confortável para o mundo corporativo.
Um software de código aberto, ou contendo um componente originalmente de código aberto, pode sim ser cobrado, e ao mesmo tempo ainda estar de acordo com a sua definição.
Por isso podemos considerar que todo software livre é um software de código aberto, mas o contrário nem sempre é verdade.

O conceito de software de código aberto é regido pela [Open Source Initiative](https://opensource.org/), que também é uma organização focada na promoção e adoção de softwares de código aberto.
A ideia é que um software de código aberto disponibilize seu código fonte sem restrições para que qualquer um possa consultar, porém existem algumas restrições do que mais pode ser feito com esse código, de acordo com o modelo de licenciamento definido.

E a _Open Source Initiative_ lista diversos modelos de licenciamento para um software de código aberto, e é o tipo de licença escolhida que define como que um software de código aberto pode ser utilizado e ou comercializado (mais sobre os tipos de licenciamento em um artigo futuro).
Por isso é sempre importante se atentar ao tipo de licença de um software antes de utilizá-lo ou incorporá-lo à um projeto.

# Porque usar software livre e de código aberto

Quase sempre que o tema de software livre é discutido, são levantados questionamentos sobre as motivações de se utilizar um software desse tipo. Já ouvi em discussões de que não é bom utilizar esse tipo de software porque não existe nenhuma empresa por trás para dar suporte ou responder a eventuais problemas de uso, nem ninguém para ser "responsabilizado".

E talvez isso até seja verdade com softwares livres, que pela sua essência acabam realmente sendo programas criados e mantidos por voluntários (já que costumam ser mesmo gratuitos), o mesmo não é uma verdade absoluta sobre softwares de código aberto.
Muitos programas de código aberto são mantidos por empresas cujos modelos de negócio acabam sendo justamente agregar algum outro valor ao software (como um atendimento personalizado, um serviço adicional relevante, etc), permitindo que o código seja disponibilizado abertamente, e ainda assim gere algum tipo de renda para quem o mantêm.

Esses são alguns dos motivos que eu pessoalmente vejo que são vantagens de se utilizar um software de código aberto:

1. Podendo olhar o código-fonte do software, você sabe exatamente o que ele está fazendo ou deixando de fazer, permitindo que seu funcionamento seja auditado por qualquer pessoa, trazendo mais segurança na sua utilização;
2. Esse tipo de software ajuda a promover o senso de comunidade, pois qualquer um pode tando contribuir para um software de código aberto, com sugestões de melhorias e correções de problemas, quanto (dependendo do licenciamento) utilizar partes de código em outros projetos;
3. Apesar de poder ter algum tipo de cobrança sobre um software de código aberto, muitas vezes é possível utilizá-lo em partes de forma gratuita, diminuindo os custos de um projeto, principalmente para pequenas empresas ou startups;
4. Liberdade de não ficar preso a uma empresa específica ao utilizar o software dela. Você utiliza um produto que sofreu alguma alteração que você não gostou, ou tem alguma funcionalidade que você precisa muito? Você pode muito bem criar uma nova versão desses sistema com base no código disponibilizado e alterá-lo da forma como for necessário para você.

E já sobre o software livre, além dos mesmos motivos do software de código aberto, podemos também adicionar um componente de certa forma ideológico sobre seu uso, que é a ideia de promover a solidariedade e a cooperação entre as pessoas, e combater monopólios.
Em vez de utilizar um software proprietário que irá beneficiar apenas uma empresa em particular, porque não utilizar um software livre, onde você pode ajudar a manter e a melhorar, é gratuito e pode acabar beneficiando muitas mais pessoas?

Claro, nem sempre vamos conseguir uma alternativa livre para os sistemas que utilizamos no nosso dia-a-dia, e softwares proprietários as vezes trazem facilidades de uso que podem parecer mais atrativos, mas tentar priorizar softwares livres e de código aberto pode ajudar a termos um futuro tecnológico melhor.

Pra quase todo software proprietário podemos encontrar um equivalente de código aberto, e aqui posso listar alguns, como Linux vs Windows e MacOS, Firefox vs Google Chrome, Android vs iOS, MySql vs Oracle e MSSQLServer, Libre Office vs Microsoft Office, GIMP vs Photoshop, Joplin vs Evernote, entre outros!

Um site que gosto que ajuda bastante nisso é o [AlternativeTo](https://alternativeto.net/). Buscando por um software ou serviço, ele traz diversos outras alternativas disponíveis, e entre os filtros você pode selecionar para trazer apenas softwares livres e de código aberto.