Free software é
um software que contém permissão para que qualquer pessoa
possa usar, copiar e distribuir, como adquirido ou modificado, gratuitamente
ou por um custo. Mais especificamente, há a exigência de que
o código fonte da aplicação esteja disponível.
A intenção dos fundadores do movimento de free software é o de retomar um modelo de desenvolvimento de software existente na década de 70, quando desenvolvedores, principalmente de sistemas Unix, trocavam informações e códigos de programas, de forma a agilizar o desenvolvimento e a popularização dos sistemas (de fato, foi esse modelo que construiu o Unix como conhecemos).
Nos anos 80, entretanto, praticamente todos sistemas desenvolvidos apresentavamse como soluções proprietárias. Com a popularização dos computadores pessoais, a maioria dos usuários acostumou-se com softwares proprietários, tais como os sistemas da Microsoft, IBM e outros.
Ainda nessa década, surgiram as primeiras organizações de desenvolvimento e apoio ao software free, citando-se sobretudo a Free Software Foundation, também conhecida por GNU, cujas metas foram lançadas em 1983, e hoje é ponto de referência para a comunidade desenvolvedora, devido a dois grandes êxitos do seu trabalho, o conjunto de ferramentas free de amplo uso atualmente, em diversas áreas da computação, e a definição da GNU Public License (GPL), conjunto de definições de autoria mais utilizada nos softwares free atuais.
Mas foi a popularização da Internet, no início da década de 90, que reaqueceu as discussões e desenvolvimentos em torno dos softwares free.
O termo free, de acordo com a intenção original, refere-se sobretudo a questões de liberdade, e não preço. Assim, um software free pode ter um custo, mas deve garantir a fiel distribuição do código fonte do aplicativo. É comum, devido à língua inglesa, confundir software free com um software grátis. Para evitar essa confusão, existem sugestões de troca de denominação para Open Source Software, mas existem algumas divergências entre seus objetivos, que serão confrontados mais adiante.
Para diferenciar um software
free de um software gratuito, é necessário listar as denominações
de outras distribuições de software mais comuns, e suas respectivas
características:
Um software de
domínio público é um software que não apresenta
nenhum copyright. É um caso especial de distribuição,
onde a autorização do autor para o uso da aplicação
pode não se estender para algumas cópias ou modificações,
podendo ou não ser grátis.
Algumas vezes, pode-se confundir
software de domínio público com software free mas para maior
clareza, recomenda-se utilizar o termo domínio público somente
com o sentido legal, ou seja, software sem copyright.
Software com copyleft
é um software free cujos termos de distribuição não
permitem aos redistribuidores adicionarem quaisquer restrições
quanto à distribuição ou modificação
do software. Isso significa que qualquer cópia do software, mesmo
modificada, deve permanecer como um free software.
Neste caso, as permissões
de cópia, distribuição e modificação
definidas pelo autor podem sofrer restrições adicionais.
Se um programa é free e não tem copyleft, então
alguma cópia ou versão modificada podem não ser free.
Uma companhia de software pode compilar o programa, com ou sem modificações,
e distribuir a aplicação como um software proprietário.
Um software semi free
é um software que não é free, mas vem com permissões
de uso individual, cópia, distribuição ou modificação,
para propósitos não comerciais.
Um software proprietário
é um software que não é free ou semi free. Seu uso,
redistribuição ou modificação é proibido,
ou requer que você peça permissão, ou até mesmo
restringe quaisquer ações.
O termo freeware não
tem uma definição clara largamente aceita, mas é comumente
usado para definir sistemas que permite a distribuição mas
não a modificação (e seus códigos fonte não
estão disponíveis). Não e´ o mesmo que free
software.
Shareware é um
software que vem com permissão de redistribuição,
mas estabelece que para continuar utilizando o software, deve-se pagar
o valor referente à licença.
Um shareware não
é um free software ou mesmo um semi free. As razões para
isso são que para a maioria dos sharewares o código fonte
não está disponível, e não permite fazer a
instalação sem pagar a licença, mesmo para usos não
comerciais.
Um software comercial
é um software que foi desenvolvido por uma empresa, e que almeja
fazer dinheiro com o uso desse software. Assim, um software comercial não
é a mesma coisa que um software proprietário. A maioria dos
software comerciais são proprietários, mas também
existem software comerciais free, assim como softwares não free
que não são comerciais.
Copyright é um método de proteger os direitos autorais em certos tipos de trabalhos. Em alguns países, o software que você escreve é automaticamente registrado. Para permitir o uso da sua criação, o autor libera uma licença de uso, na forma que mais o agradar. É normal ao autor incluir o modo com que o software deve ser usado.
Mas diferentes situações requerem licenças diferentes. Companhias de software que buscam proteger seus sistemas somente liberam a versão compilada do código, e colocam muitas restrições no uso do software.
Autores de software free, por outro lado, geralmente procuram uma combinação das seguintes características:
- Não permitir o uso dos seus códigos em softwares comerciais. Como eles estão disponibilizando o código para o uso de outros, sem nenhum lucro adicional, eles não querem que alguém utilize-o em um software comercial.
- Proteger a identidade do autor do código. Devido ao trabalho envolvido no desenvolvimento, as pessoas não desejam que alguém venha, remova o seu nome e diga que foi ele que escreveu o software.
- Distribuição do código fonte. Um dos problemas mais comuns dos softwares comerciais é que você não pode resolver bugs pois o código fonte não está disponível. Além disso, a empresa pode decidir parar de suportar o hardware que você usa. Muitas licenças free forçam a distribuição do código fonte, para proteger o usuário, ao permitir que ele customize o software para as suas necessidades.
- Forçar que quaisquer trabalhos que incluam parte do seu software (chamados de trabalhos derivados, segundo as discussões de copyright) a citar seu nome e usar a mesma licença (free).
Muitas pessoas escrevem
suas próprias licenças, mas geralmente elas são ambíguas
ou conflitantes.
Entretanto, existem diversas
licenças popularmente usadas, entre elas:
- The GNU General Public License (GPL). É a licença mais comum em uso no mundo.Algumas das características comuns a essas licenças são:
- Artistic License - http://language.perl.com/misc/Artistic.html.
- BSD style license.
- Modified BSD license.
- Você pode instalar o software em tantas máquinas quanto desejar;
- Qualquer número de pessoas pode usar o software ao mesmo tempo;
- Você pode fazer tantas cópias do software quanto desejar e distribuí-las para quem você quiser;
- Não há restrição quanto à modificação do software (excetuando a manutenção de certos atributos intactos, como o nome do autor, etc.);
- Não há restrição quanto à venda do software;
Apesar da última
característica parecer ser contra toda a idéia do software
free, atualmente é uma das suas grandes vantagens. Desde que a licença
permite livre redistribuição, pode-se também tentar
vendê-la. A idéia por trás disso é que praticamente
não há custos em fazer uma cópia eletrônica
do software, e a oferta e a demanda vão manter o custo baixo.
Se for conveniente agregar um grande grupo de softwares em uma mídia como um CD, o vendedor é livre para cobrar o que desejar. Se o lucro for muito alto, entretanto, novos vendedores irão entrar no mercado e a competição vai baixar o preço. Por causa disso, é comum encontrar CDs vendidos a menos de 5 dólares.
Apesar do free software não
ser totalmente livre de restrições (atingida somente colocando
como domínio público), ele permite uma grande flexibilidade
ao usuário, para fazer o que necessita, e ao mesmo tempo protege
os direitos do autor.