7Jul
geralmente descrevem programas como "código aberto" ou "software livre". Se você está se perguntando exatamente o que esses termos significam e por que eles importam, continue lendo.(Não, "software livre" não significa apenas que você pode baixá-lo gratuitamente.)
Se um programa é de código aberto ou não, não é apenas importante para os desenvolvedores, isso também interessa aos usuários. As licenças de software de código aberto dão aos usuários 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 é de código aberto, seu código fonte está disponível gratuitamente para seus usuários. Seus usuários - e qualquer outra pessoa - têm a capacidade de tomar esse código-fonte, modificá-lo e distribuir suas próprias versões do programa. Os usuários também têm a capacidade de distribuir tantas cópias do programa original como desejam. Qualquer um pode usar o programa para qualquer finalidade;não há taxas de licenciamento ou outras restrições no software. O OSI possui uma definição mais detalhada de "código aberto" em seu site.
Por exemplo, o Ubuntu Linux é um sistema operacional de código aberto. Você pode baixar o Ubuntu, criar quantas cópias quiser e dar-lhes aos seus amigos. Você pode instalar o Ubuntu em uma quantidade ilimitada de seus computadores. Você pode criar remixes do disco de instalação do Ubuntu e distribuí-los. Se você estivesse particularmente motivado, você poderia baixar 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. As licenças de código aberto permitem que você faça isso, enquanto as licenças de fonte fechada colocam restrições em você.
O oposto do software de código aberto é o software de fonte fechada, que possui uma licença que restringe os usuários e mantém o código-fonte deles.
O Firefox, o Chrome, o OpenOffice, o Linux e o Android são alguns exemplos populares de software de código aberto, enquanto o Microsoft Windows é provavelmente a peça mais popular de software de fonte fechada lá fora.
Open Source vs. Software Livre
As aplicações de código aberto geralmente são livremente disponíveis - embora não haja nada que impede o desenvolvedor de cobrar por cópias do software se elas permitirem a redistribuição da aplicação e seu código-fonte posteriormente.
No entanto, esse não é o que o "software livre" se refere. O "livre" no software livre significa "livre como em liberdade", não "livre como na cerveja". O acampamento de software livre, liderado por Richard Stallman e a Free Software Foundation, centra-se na ética e moral de usar o software que pode sercontrolado e modificado pelo usuário. Em outras palavras, o campo do software livre se concentra nas liberdades dos usuários.
Richard Stallman. Imagem de Fripog no Flickr.
O movimento do software de fonte aberta foi criado para se concentrar em razões mais pragmáticas para escolher esse tipo de software. Os defensores de código aberto queriam se concentrar nos benefícios práticos de usar o software de fonte aberta que atrairia mais para as empresas, e não para a ética e a moral.
Em última análise, os defensores de código aberto e de software livre estão desenvolvendo o mesmo tipo de software, mas eles não concordam com a mensagem.
Tipos de licenças
Existem muitas licenças diferentes usadas por projetos de código aberto, dependendo do que os programadores preferem para seu programa.
A GPL, ou GNU General Public License, é amplamente utilizada 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 fonte aberta e distribuir um trabalho derivado, eles também devem distribuir o código-fonte para o trabalho derivado. Em outras palavras, ninguém pode tirar código aberto e criar um programa de fonte fechada - eles devem liberar suas mudanças de volta para a comunidade. A Microsoft se referiu à GPL como "viral" por esse motivo, pois força programas que incorporam o código GPL para liberar seu próprio código fonte. Claro, os desenvolvedores de um programa podem optar por não usar o código GPL se este for um problema.
Algumas outras licenças, como a licença BSD, colocam menos restrições nos desenvolvedores. Se um programa estiver licenciado sob a licença BSD, qualquer pessoa pode incorporar o código-fonte do programa em outro programa. Eles não precisam liberar suas mudanças de volta para a comunidade. Algumas pessoas vêem isso ser ainda mais "gratuito" do que a licença GPL, pois oferece aos desenvolvedores a liberdade de incorporar o código em seus próprios programas de código fechado, enquanto algumas pessoas vêem isso como sendo menos "livres" porque leva direitosdos usuários finais do programa derivado.
Benefíciospara usuários
Este não é todo um material seco e sem importância que apenas interessa aos desenvolvedores. O benefício mais óbvio do software de código aberto é que ele pode ser tido gratuitamente. O exemplo do Ubuntu Linux acima deixa isso claro - ao contrário do Windows, você pode instalar ou distribuir tantas cópias do Ubuntu quanto desejar, sem restrições. Isso pode ser servidores particularmente úteis - se você estiver configurando um servidor, você pode simplesmente instalar o Linux nisso. Se você estiver configurando um cluster virtualizado de servidores, você pode facilmente duplicar um único servidor Ubuntu. Você não precisa se preocupar com licenciamento e quantas instâncias do Linux você pode executar.
Um programa open-source também é mais flexível. Por exemplo, a nova interface do Windows 8 decepcionou muitos usuários de Windows de desktop de longa data. Como o Windows é de origem fechada, nenhum usuário do Windows pode usar a interface do Windows 7, modificá-la e fazê-la funcionar corretamente no Windows 8.( Alguns usuários do Windows estão tentando, mas este é um processo cuidadoso de engenharia reversa e modificação de arquivos binários.)
Quando uma área de trabalho do Linux, como o Ubuntu, apresenta uma nova interface de desktop que alguns usuários não são fãs, os usuários têm mais opções. Por exemplo, quando o GNOME 3 foi lançado, muitos usuários de desktop Linux foram igualmente desligados. Alguns levaram o código para a versão antiga, o GNOME 2, e modificaram-no para executá-lo nas últimas distribuições do Linux - este é o MATE.Alguns tomaram o código para o GNOME 3 e modificaram-no para fazê-lo funcionar de uma maneira que eles preferiram - isto é Canela. Alguns usuários simplesmente mudaram para desktops alternativos existentes. Se o Windows fosse de código aberto, os usuários do Windows 8 teriam mais opções e flexibilidade. Basta dar uma olhada no CyanogenMod, uma distribuição popular e orientada pela comunidade do Android que adiciona recursos e suporte para novos dispositivos.
O software Open-source também permite que os desenvolvedores "permaneçam nos ombros dos gigantes" e criem seu próprio software. Witness Android e 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, por isso, iOS - também foi criado em código aberto. A Valve está trabalhando furiosamente ao transportar sua plataforma de jogos Steam para o Linux, pois isso lhes permitiria criar seu próprio hardware e controlar seu próprio destino de uma maneira 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 você deve ter uma idéia melhor do que o software de fonte aberta realmente é e porque é útil para você.