O que é software de código aberto e por que isso importa?

Índice:

O que é software de código aberto e por que isso importa?
O que é software de código aberto e por que isso importa?

Vídeo: O que é software de código aberto e por que isso importa?

Vídeo: O que é software de código aberto e por que isso importa?
Vídeo: AFINAL, ANTIVÍRUS NO CELULAR É REALMENTE NECESSÁRIO? - YouTube 2024, Abril
Anonim
Os geeks geralmente descrevem programas como "código aberto" ou "software livre". Se você estiver se perguntando exatamente o que esses termos significam e por que eles são importantes, continue lendo. (Não, "software livre" não significa apenas que você pode baixá-lo gratuitamente.)
Os geeks geralmente descrevem programas como "código aberto" ou "software livre". Se você estiver se perguntando exatamente o que esses termos significam e por que eles são importantes, 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 importa apenas para os desenvolvedores, também é importante para os usuários. Licenças de software de código aberto oferecem aos usuários liberdades que, de outra forma, não teriam.

A definição de código aberto

Se um programa é open-source, seu código-fonte está disponível gratuitamente para seus usuários. Seus usuários - e qualquer outra pessoa - têm a capacidade de pegar 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 quantas cópias do programa original quiserem. Qualquer um pode usar o programa para qualquer finalidade; não há taxas de licenciamento ou outras restrições sobre o software. O OSI tem 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 fazer o download do Ubuntu, criar quantas cópias quiser e distribuí-las 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. Todas as licenças de código aberto permitem que você faça isso, enquanto as licenças de código fechado colocam restrições em você.

O oposto do software de código aberto é o software de código fechado, que tem uma licença que restringe os usuários e mantém o código-fonte deles.
O oposto do software de código aberto é o software de código fechado, que tem uma licença que restringe os usuários e mantém o código-fonte deles.

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

Software Open Source vs. Software Livre

Os aplicativos 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 permitir a redistribuição do aplicativo e seu código-fonte posteriormente.

No entanto, não é isso que “software livre” se refere. O “livre” em software livre significa “livre como em liberdade”, não “livre como na cerveja”. O campo do software livre, liderado por Richard Stallman e pela Free Software Foundation, focaliza a ética e a moral do uso de software que pode ser controlado e modificado pelo usuário. Em outras palavras, o campo do software livre se concentra nas liberdades dos usuários.

Image
Image

Richard Stallman. Imagem por Fripog no Flickr.

O movimento de software de código aberto foi criado para se concentrar 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 atraísse mais as empresas do que a ética e a moral.

Em última análise, tanto os defensores de software livre quanto de software livre estão desenvolvendo o mesmo tipo de software, mas eles discordam sobre as mensagens.

Tipos de Licenças

Existem muitas licenças diferentes usadas por projetos de código aberto, dependendo do que os desenvolvedores preferem 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-fonte aberto, os termos da GPL especificam que, se alguém modificar um programa de código aberto e distribuir um trabalho derivado, ele também deve distribuir o código fonte para seu trabalho derivado. Em outras palavras, ninguém pode usar código aberto e criar um programa de código fechado a partir dele - eles devem liberar suas alterações de volta para a comunidade. A Microsoft se referiu à GPL como sendo "viral" por esse motivo, pois força programas que incorporam o código GPL a liberar seu próprio código-fonte. Naturalmente, os desenvolvedores de um programa podem optar por não usar o código GPL se isso for um problema.

Algumas outras licenças, como a licença BSD, colocam menos restrições aos desenvolvedores. Se um programa é licenciado sob a licença BSD, qualquer pessoa pode incorporar o código-fonte do programa em outro programa. Eles não precisam liberar as alterações de volta para a comunidade. Algumas pessoas vêem isso como sendo ainda mais “livre” 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 vêem como menos “livre” porque retira os direitos dos usuários finais do programa derivado.
Algumas outras licenças, como a licença BSD, colocam menos restrições aos desenvolvedores. Se um programa é licenciado sob a licença BSD, qualquer pessoa pode incorporar o código-fonte do programa em outro programa. Eles não precisam liberar as alterações de volta para a comunidade. Algumas pessoas vêem isso como sendo ainda mais “livre” 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 vêem como menos “livre” porque retira os direitos dos usuários finais do programa derivado.

Benefícios para os usuários

Isso não é tudo coisas secas e sem importância que só interessam aos desenvolvedores. O benefício mais óbvio do software de código aberto é que ele pode ser obtido gratuitamente. O exemplo do Ubuntu Linux acima deixa claro - ao contrário do Windows, você pode instalar ou distribuir quantas cópias quiser do Ubuntu, sem restrições. Isso pode ser um servidor particularmente útil. Se você estiver configurando um servidor, basta instalar o Linux nele. Se você estiver configurando um cluster virtualizado de servidores, poderá duplicar facilmente um único servidor Ubuntu. Você não precisa se preocupar com o licenciamento e quantas instâncias do Linux você pode executar.

Um programa de código aberto também é mais flexível.Por exemplo, a nova interface do Windows 8 decepcionou muitos usuários de longa data do Windows. Como o Windows é de código fechado, 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 é um processo meticuloso de engenharia reversa e modificação de arquivos binários. )

Quando um desktop Linux como o Ubuntu introduz uma nova interface de desktop da qual 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 o modificaram para que ele fosse executado nas distribuições mais recentes do Linux - isso é o MATE. Alguns levaram o código para o GNOME 3 e o modificaram para que funcionasse da maneira que preferiam - é o Cinnamon. Alguns usuários apenas 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 popular distribuição do Android impulsionada pela comunidade que adiciona recursos e suporte a novos dispositivos.
Quando um desktop Linux como o Ubuntu introduz uma nova interface de desktop da qual 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 o modificaram para que ele fosse executado nas distribuições mais recentes do Linux - isso é o MATE. Alguns levaram o código para o GNOME 3 e o modificaram para que funcionasse da maneira que preferiam - é o Cinnamon. Alguns usuários apenas 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 popular distribuição do Android impulsionada pela comunidade que adiciona recursos e suporte a novos dispositivos.

O software de código aberto também permite que os desenvolvedores “se posicionem sobre os ombros dos gigantes” e criem seu próprio software. Testemunhe o Android e o Chrome OS, que são sistemas operacionais criados no Linux e em outros softwares de código aberto. O núcleo do OS X da Apple - e, portanto, do iOS - também foi desenvolvido em código aberto. A Valve está trabalhando intensamente na migração de sua plataforma de jogos Steam para o Linux, pois isso permitiria que eles criassem seu próprio hardware e controlassem seu próprio destino de uma maneira que não seria possível no Windows da Microsoft.

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

Recomendado: