O que é Open Source?

O mundo hoje é mais democrático para quem deseja ou precisa usar a informática, mais precisamente quem necessita de programas de computador. Mas nem sempre foi assim e em parte o que tornou o acesso ao mundo dos computadores algo um pouco mais simples ou menos custoso, foi o software de código aberto ou open source. Mas o que é exatamente open source?

Os outros tipos de programas

Pode-se dizer que há vários “tipos” de software ou programas de computador, quanto aos aspectos de seu uso e distribuição e, sobretudo, do código ou programação utilizado neles, mas em termos mais gerais, podemos dividi-los em dois grandes grupos: código proprietário ou closed source e código livre ou open source.

A compreensão passa por entender o que não é open source. O primeiro grupo engloba boa parte dos programas que utilizamos comercialmente e até poucos anos atrás, correspondiam a mais de 90% de tudo que se tinha instalado em um computador dentro de uma empresa e até mesmo em ambiente doméstico e que é representado pelos softwares proprietários e de código fechado.

Quando você utiliza um programa de qualquer natureza (sistema operacional, editor de texto, gerenciador de e-mail, etc), este software é composto de um código fonte, que é a programação responsável pelo funcionamento, pelos recursos e características do programa usado.

Este código é compilado, ou ‘traduzido’, para uma linguagem de programação compreensível para o sistema em que ele é executado. No caso do software proprietário, este código não é fornecido e é de conhecimento exclusivo da equipe de programadores que o criou.

Softwares proprietários e de código fechado ou ainda closed source, proliferaram ao mesmo tempo em que a informática desenvolveu-se e muitas empresas foram criadas com o objetivo de fornecer programas e este foi um artifício para impedir que um concorrente usasse de sua programação ou conhecesse seus métodos e os utilizasse na criação de produtos concorrentes.

Apenas o criador do software de código proprietário pode copiar, inspecionar e alterar seu código. O uso do software proprietário por terceiros, requer que os usuários concordem com os termos de uso e uma licença, que é exibida geralmente em algum ponto do processo de instalação ou na primeira execução.

Entre as muitas restrições impostas nestes termos, geralmente as mais importantes referem-se aos aspectos de comercialização, cópia, redistribuição, uso e que não se fará nada com o software, que os autores do software não tenham expressamente permitido.

Como é de se imaginar, até pelo nome e em contraposição ao primeiro, o software de código aberto, tem o código fonte liberado para conhecimento e acesso de quaisquer pessoas. Mais que isso, é permitida a sua alteração. Vamos entender melhor como isso funciona a seguir.

Características do Open Source

Contar um pouco da história do mais popular exemplo de programa open source, ajuda entender bem o que é o conceito por trás disso e os benefícios que são associados.

No início dos anos 90, na Universidade de Helsinque, na Finlândia, Linux Torvald criou o sistema operacional Linux a partir do Unix, sob a licença “GNU General Public License”, que fornece uma das muitas designações e parâmetros para licenças de software e que foi criada por Richard Stallman da Free Software Foundation.

A partir daí, muitas pessoas ao redor do mundo baixaram o Linux e começaram a trabalhar com ele. Entre os muitos usuários, alguns eram programadores e por terem acesso ao código fonte, analisaram-no, aprenderam-no e fizeram modificações para melhorá-lo. Durante aproximadamente três anos Torvalds recebeu todas as alterações e contribuições e incorporou várias delas na versão original, lançando então a versão 1.0 do Linux em 1994.

A GPL ou GNU General Public License, é o tipo de licença predominantemente usada em projetos de código aberto. Entre os diversos aspectos contidos na licença, os termos determinam que se ocorrer alguma modificação em um programa de código aberto, a distribuição do programa alterado também deve distribuir o código fonte que foi alterado. Ou seja, ninguém pode usar código aberto para produzir código proprietário a partir dele.

Mas o aspecto mais interessante relativo ao Open Source, é a atuação colaborativa que normalmente está associada e que vimos acontecer no “nascimento” do Linux e que perdura até os dias de hoje. Normalmente há uma comunidade global de desenvolvedores que doa seu tempo e seu trabalho em prol de produzir melhorias no código original, resolvendo e corrigindo problemas e implementando novas funcionalidades.

Assim, contrariamente aos softwares proprietários em que novas versões, updates e patches só são divulgados pela empresa que criou o software, no caso do software de código aberto, alterações de toda ordem podem vir literalmente a qualquer momento e de qualquer parte do mundo.

Esse caráter do software livre, aproxima-o enormemente de um conceito plural e orientado às reais necessidades dos usuários.

Em termos mais objetivos, um programa Open Source, apresenta os seguintes requisitos segundo a Open Source Iniciative:

  • Livre distribuição – a licença não pode impor nenhuma restrição quanto a venda ou distribuição do programa gratuitamente, seja como componente de outro programa ou não;

  • Código fonte – o programa fornecido deve conter seu código fonte, mesmo que seja obtido compilado. Quando compilado, deve haver meios para obtenção do código fonte, o qual deve legível por parte de qualquer programador ou pessoa que dele faça uso;

  • Programas derivados – a licença associada, deve permitir modificações e trabalhos derivados, bem como garantir que eles sejam distribuídos sob os mesmos termos da licença original associada ao programa que o originou;

  • Integridade do autor do código – a licença não pode restringir a distribuição do código fonte modificado sob quaisquer condições ou restrições, sob a pena de alterar a característica de software livre em software proprietário. A licença de maneira inequívoca deve garantir a distribuição do programa que foi originário do código fonte modificado. Porém, pode-se requerer que programas derivados tenham um nome ou número de versão diferentes do programa do qual se originaram;

  • Discriminação a pessoas ou grupos – a licença não pode conter nenhum aspecto que caracterize ato ou condição de uso discriminatório a qualquer pessoa ou grupo de pessoas;

  • Discriminação a áreas de atuação – a licença de um Open Source, não pode estabelecer restrições de nenhuma natureza, quanto ao uso de programas Open Source, seja ela uma empresa, uma ONG, uma repartição pública qual for sua atuação e propósito social;

  • Distribuição da Licença – todas as pessoas ou organizações privadas, públicas ou governamentais para as quais o programa é distribuído, devem ter seus direitos de uso assegurados, sem que seja necessário qualquer licença adicional;

  • Licença não específica a um produto – direitos vinculados a um programa, não podem requerer que o programa em questão seja parte de uma distribuição de outros programas quaisquer. Se eventualmente o programa é extraído de outro de que faça parte, aqueles para quem o programa é redistribuído, têm direitos iguai aos que constam da distribuição do programas original;

  • Licença não restrinja outros programas – não podem haver restrições ou obrigações na licença quanto a outros programas que eventualmente sejam distribuídos conjuntamente ao programa ao qual a licença se aplique. Ou seja, não deve interferir no modelo de licenciamento de outros programas;

  • Neutralidade em relação a tecnologia – a licença não deve conter condições que imponham a utilização de alguma tecnologia específica, estilo ou interface que o programa deve seguir ou conter.

Livre não é grátis!

Quem não está muito familiarizado com as terminologias Free Software (Software Livre) e Open Source (Código Aberto), normalmente quando as conhece, costuma entendê-las como significando a mesma coisa. Mas não são. Em termos práticos, geralmente acabam tendo os mesmos efeitos, mas há sutilezas que as diferenciam.

O primeiro ponto que se confunde da definição de ambos, é aquele defendido por Richard Stallman, um dos defensores mais conhecidos de ambos, que tem relação com gratuidade. A palavra “free” em inglês assume a ambígua tradução de liberdade ou gratuito, conforme o contexto em que é usado.

No caso, Free Software refere-se a liberdade. Um software gratuito é um programa gratuitamente copiado e distribuído em sua forma executável, mas que entre outras coisas, não se fornece seu código fonte, não há permissão de alteração e estudo do seu código. Com o software livre, tudo isso é possível e inclusive quem assim atua, pode cobrar pelo que fez.

Stallman vai além e ressalta que todo Software Livre, é Open Source, mas a recíproca não é necessariamente verdadeira. Software livre tem como características fundamentais, permitir ao usuário a liberdade de copiar, distribuir, modificar e estudar o programa sem pagar por isso ou necessitar de autorização do seu autor para fazê-lo. Para que tais características confirmem-se, é necessário que o usuário tenha acesso ao código fonte (Open Source).

Pragmaticamente, qualquer um que altere um programa Open Source ou Free Software, pode cobrar ou não por eles.

Vantagens do Open Source

Embora algumas sejam controvertidas e questionadas, particularmente por quem está no polo oposto, ou seja, quem produz código proprietário, há algumas vantagens e que acabam sendo quase fundamentos daqueles que desenvolvem código aberto:

Transparência – na medida em que tenho acesso à programação por trás de cada programa executado, tenho a possibilidade de saber exatamente tudo o que ele faz, bem como a garantia de que não está ocorrendo nada que eu não permitiria ou gostaria, como por exemplo, coleta de dados pessoais, que garantem meu sigilo e privacidade;

Informação – as tecnologias e a forma como as coisas acontecem em termos de programação, não são mais exclusivas de quem programou e assim o conhecimento é compartilhado;

Segurança – devido ao fato de que o código é público, qualquer pessoa com os conhecimentos necessários pode contribuir para melhorar e mesmo corrigir problemas e falhas associadas à segurança, o que só pode ser feito pelos programadores originais quando se tem código proprietário;

Manutenção – manter o software atualizado, bem como fornecer melhorias, não são situações que dependem apenas do fornecedor do programa, mas possibilidades ao alcance de muitos;

Custo – embora não seja garantida a gratuidade em 100% dos casos, é muito próximo disso o número de programas nesta condição, o que é um ponto favorável à democratização informática.

Open Source democratizando o acesso à informação

A característica mais marcante que foi responsável pela democratização do acesso, foi a gratuidade que geralmente está associada, mas que não é condição obrigatória.

Durante os anos de maior expansão da Internet, muitas tecnologias que foram usadas, eram baseadas no open source. Assim, exceto pelo hardware, podia-se montar um servidor de hospedagem de sites apenas usando software de código aberto, ou seja, sem custo na maior parte dos casos.

Começando pelo sistema operacional Linux, o serviço de exibição de páginas Apache, o banco de dados MySQL, o serviço de e-mail Exim, a linguagem de programação PHP, tinha-se um servidor capaz de fornecer tudo que a Internet exigia de uma hospedagem, sem gastar um único centavo com licenciamento de software.

Na outra ponta, encontramos o usuário que acessa os sites hospedados neste ambiente. Como geralmente os programas open source são gratuitos, adquirir um computador tornou-se economicamente mais acessível, visto que o custo com o software incluso nela, pode ser bastante inferior a uma máquina com software proprietário. Nessa onda, multiplicaram-se distribuições Linux, navegadores, programas de gerenciamento de e-mail e tudo mais que alguém precisa para usar um computador.

E se não bastasse tudo isso, o movimento ampliou-se e ganhou adeptos do conceito em todos os segmentos. Hoje você cria um blog, monta uma loja online, desenvolve e mantém um site institucional, ou escolhe dezenas de CMSs para gerenciar todo tipo de conteúdo na Internet, apenas usando algumas das mais populares e melhores aplicações web, todas nascidas sob a égide do código aberto.

Conclusão

Software ou programa de código aberto ou open source, é todo o programa cujo código fonte é fornecido em caráter público, podendo ser alterado e redistribuído livremente, gratuitamente ou não e nas mesmas condições que o software original e costuma ter um caráter colaborativo em termos de desenvolvimento e com aspectos que favorecem enormemente a acessibilidade digital a um maior número de pessoas.