O que é software de código aberto e por que isto é importante?

ubuntu-lucid-lynx-tux-android

Os geeks costumam descrever os programas como sendo de “código aberto” ou “software livre”. Se tu está se perguntando exatamente o que esses termos significam e por que são importantes, continue lendo. (Não, “software livre” não significa apenas que tu pode baixá-lo gratuitamente.)

Se um programa é de código aberto ou não, isto não importa apenas para os desenvolvedores, mas também para os utilizadores. As licenças de software de código aberto oferecem aos utilizadores liberdades que de outra forma não teriam.

Crédito da imagem: Quinn Dombrowski no Flickr

A definição de código aberto

Se um programa for de código aberto, seu código-fonte estará disponível gratuitamente para seus utilizadores. Seus utilizadores – e qualquer outra pessoa – podem pegar este código-fonte, modificá-lo e distribuir suas próprias versões do programa. Os utilizadores também podem distribuir quantas cópias do programa original desejarem. Qualquer pessoa pode usar o programa para qualquer propósito; não há taxas de licenciamento ou outras restrições ao software. O OSI tem uma definição mais detalhada de “código aberto” em seu site .

Por exemplo, Ubuntu Linux é um sistema operacional de código aberto. tu pode descarregar o Ubuntu, criar quantas cópias quiser e dar aos seus amigos. tu pode instalar o Ubuntu em uma quantidade ilimitada de computadores. tu pode criar remixes do disco de instalação do Ubuntu e distribuí-los. Se tu estiver particularmente motivado, pode descarregar o código-fonte de um programa no Ubuntu e modificá-lo, criando sua própria versão personalizada desse programa – ou do próprio Ubuntu. Todas as licenças de código aberto permitem que tu faça isto, enquanto as licenças de código fechado impõem restrições a tu.

O oposto do software de código aberto é o software de código fechado, que possui uma licença que restringe os utilizadores e mantém o código-fonte longe deles.

Recomendado:  O que significa “GLHF” e como usá-lo?

Firefox, Chrome, OpenOffice, Linux e Android são alguns exemplos populares de software de código aberto, enquanto o Microsoft Windows é provavelmente o software de código fechado mais popular que existe.

Código Aberto vs. Software Livre

Os aplicações de código aberto geralmente estão disponíveis gratuitamente – embora não haja nada que impeça o desenvolvedor de cobrar por cópias do software se eles permitirem a redistribuição do aplicação e de seu código-fonte posteriormente.

No entanto, não é a isto que “software livre” se refere. O “livre” em software livre significa ” livre como na liberdade “, não “livre como na cerveja”. O campo do software livre, liderado por Richard Stallman e a Free Software Foundation, foca na ética e na moral do uso de software que pode ser controlado e modificado pelo utilizador. Em outras palavras, o acampamento do software livre concentra-se na liberdade do utilizador.

richard-stallman

Richard Stallman. Imagem de Fripog no Flickr .

O movimento do software de código aberto foi criado para focar em razões mais pragmáticas para a escolha desse tipo de software. Os defensores do código aberto queriam se concentrar nos benefícios práticos do uso de software de código aberto que atrairia mais as empresas, em vez de ética e moral.

Em última análise, os defensores do software livre e de código aberto estão desenvolvendo o mesmo tipo de software, mas discordam quanto à mensagem.

Tipos de licenças

Existem muitas licenças diferentes usadas por projetos de código aberto, dependendo da preferência dos desenvolvedores para seu programa.

A GPL, ou GNU General Public License, é amplamente usada por muitos projetos de código aberto, como o Linux. Além de todas as definições acima de código aberto, os termos da GPL especificam que, se alguém modificar um programa de código aberto e distribuir uma obra derivada, também deve distribuir o código-fonte de sua obra derivada. Em outras palavras, ninguém pode pegar o código-fonte aberto e criar um programa de código-fonte fechado – eles devem liberar suas alterações para a comunidade. A Microsoft se referiu ao GPL como sendo “viral” por este motivo, pois força os programas que incorporam o código GPL a liberar seu próprio código-fonte. Obviamente, os desenvolvedores de um programa podem optar por não usar o código GPL se isto for um problema.

Recomendado:  Como monitorar o progresso dos comandos do Linux (com PV e progresso)

pidgin-license-agreement

Algumas outras licenças, como a licença BSD, impõem menos restrições aos desenvolvedores. Se um programa for licenciado sob a licença BSD, qualquer pessoa pode incorporar o código-fonte do programa em outro programa. Eles não precisam divulgar suas alterações para a comunidade. Algumas pessoas veem que isto é ainda mais “gratuito” do que a licença GPL, pois dá aos desenvolvedores a liberdade de incorporar o código em seus próprios programas de código fechado, enquanto algumas pessoas o veem como sendo menos “gratuito” porque retira os direitos dos utilizadores finais do programa derivado.

Benefícios para utilizadores

Nem tudo isto é seco e sem importância que só importa para os desenvolvedores. O benefício mais óbvio do software de código aberto é que ele pode ser obtido de graça. O exemplo do Ubuntu Linux acima deixa isto claro – ao contrário do Windows, tu pode instalar ou distribuir quantas cópias do Ubuntu quiser, sem restrições. Servidores podem ser particularmente úteis – se tu estiver configurando um servidor, basta instalar o Linux nele. se estiver configurando um cluster virtualizado de servidores, tu pode facilmente duplicar um único servidor Ubuntu. tu não precisa se preocupar com o licenciamento e quantas instâncias do Linux tu tem permissão para executar.

Um programa de código aberto também é mais flexível. Por exemplo, a nova interface do Windows 8 decepcionou muitos utilizadores antigos do Windows. Como o Windows é de código fechado, nenhum utilizador do Windows pode pegar a interface do Windows 7, modificá-la e fazê-la funcionar corretamente no Windows 8. (Alguns utilizadores do Windows estão tentando, mas este é um processo meticuloso de engenharia reversa e modificação de ficheiros binários. )

Recomendado:  Como fazer os vídeos do YouTube girarem continuamente

imagem

Quando um desktop Linux como o Ubuntu apresenta uma nova interface de desktop da qual alguns utilizadores não são fãs, os utilizadores têm mais opções. Por exemplo, quando o GNOME 3 foi lançado, muitos utilizadores de desktop Linux foram igualmente desligados. Alguns pegaram o código da versão antiga, GNOME 2, e o modificaram para que ele rodasse nas últimas distribuições do Linux – isto é MATE . Alguns pegaram o código do GNOME 3 e o modificaram para fazê-lo funcionar da maneira que eles preferiram – este é o Canela . Alguns utilizadores acabaram de mudar para desktops alternativos existentes. Se o Windows fosse de código aberto, os utilizadores do Windows 8 teriam mais opções e flexibilidade. Basta dar uma olhada no CyanogenMod, uma distribuição popular do Android voltada para a comunidade que adiciona recursos e suporte para novos dispositivos.

O software de código aberto também permite que os desenvolvedores “subam nos ombros de gigantes” e criem seu próprio software. Testemunhe o Android e o Chrome OS, que são sistemas operacionais baseados em Linux e outros softwares de código aberto. O núcleo do OS X da Apple – e, portanto, do iOS – também foi construído em código aberto. A Valve está trabalhando furiosamente para portar sua plataforma de jogos Steam para o Linux, pois isto permitiria que eles criassem seu próprio hardware e controlassem seu próprio destino de uma forma que não é possível no Windows da Microsoft.


Esta não é uma descrição exaustiva – livros inteiros foram escritos sobre este assunto – mas agora tu deve ter uma ideia melhor do que o software de código aberto realmente é e por que ele é útil para tu.