terça-feira, 16 de dezembro de 2014

O que é o open source?

As linguagens de programação como o JAVA, o C++, o C#, o Fortran, o Cobol, entre muitas outras, permitem facilitar o processo de programação dos computadores. Dado que estes funcionam em código máquina, ou código executável, essencialmente composto de "zeros" e "uns", estas linguagens funcionam como que uma ponte de comunicação homem-máquina entre programadores e computadores.
Para converter uma linguagem de programação em código máquina utiliza-se um outro programa a que se chama "compilador". Esse compilador funciona num dado sistema operativo, o programa que controla o funcionamento básico de qualquer computador, como por exemplo o Windows, o Linux ou o Mac OS.
Quando um dado programa, escrito numa dada linguagem de programação, está disponível a todos para consulta ou edição e respectiva compilação, diz-se que é código aberto ou "open source".
O que é normalmente disponibilizado aos clientes de informática (todos nós) é apenas o executável e a respetiva licença de utilização.
O código fonte, escrito numa dada linguagem de programação, fica tradicionalmente na posse do fabricante de software. Por exemplo num programa como o EXCEL (do Office) que todos conhecemos, apenas temos acesso ao executável e licença. O código fonte está na posse exclusiva da Microsoft, o seu fabricante. Neste caso podemos dizer que o código é fechado. Como alternativa temos o Calc (do OpenOffice) onde além do executável podemos ver e alterar o código fonte.

Para ultrapassar a dependência de funcionalidades e prioridades de desenvolvimento que estão fora do controle dos clientes, alguns programadores passaram a disponibilizar-lhes o código fonte das suas aplicações. Assim, além de receberem o executável gerado, os clientes passaram a ter a possibilidade de alterá-lo à sua medida, sem grande dependência dos seus programadores originais nem dos sistemas operativos em que funcionavam.
Dado que muitas destas comunidades de programadores utilizavam o JAVA como linguagem de programação, uma linguagem aberta e multiplataforma, ficou a ideia de que o código aberto ou open source seria um programa feito nessa linguagem de programação. Outra associação que se faz a este tema é que o sistema operativo tem que ser Linux. Outra ainda é que o software aberto é sempre gratuito.
Não é verdade. JAVA ou Linux não quer dizer open source e open source não tem nada a ver com JAVA ou Linux, tal como o facto do software ser aberto não significa que seja tudo gratuito. Há serviços a pagar de adaptação, instalação e manutenção que, por vezes, ultrapassam o preço do licenciamento habitual do software de pacote de fabricante (ou seja aquele que só disponibiliza o código executável).
A ideia de um código aberto a todos é que outros programadores com acesso ao código fonte, com problemas similares, podem submeter correções, otimizações e funcionalidades que eles próprios necessitam. Esta estratégia funciona bem quando existem uma partilha muito grande de funcionalidades que todo um universo de utilizadores necessita. No entanto, em soluções verticais não existem outros programadores dispostos a trabalhar gratuitamente para resolver problemas específicos que não querem partilhar. Nasceu assim o modelo de negócio do open source em que os custos globais passaram a ser calculados em termos dos serviços de adaptação, instalação e manutenção que necessitam de ser contratados, nem sempre competitivos com o modelo de código proprietário tradicional. Além disso colocam-se questões de segurança e privacidade difíceis e até perigosas de gerir.

Outra confusão que se faz sobre este tema é dizer que um código escrito numa dada linguagem de programação proprietária, mesmo que seja disponibilizado a clientes, não se considera aberto porque não pode ser utilizado em todo o tipo de computadores. Não é verdade. Uma linguagem por ser proprietária não deixa de poder ser aberta. 
Melhorando este conceito, a Microsoft disponibilizou recentemente as suas habituais linguagens de programação, incluídas no seu framework de desenvolvimento .NET e no seu produto Visual Studio, reforçando assim o compromisso de proporcionar uma experiência multiplataforma para Windows, Linux e Mac OS, e a disponibilização de código aberto (open source) na versão preview do .NET 2015. Assim podemos ter agora programas em código aberto escritos em C++ ou C#, que podem facilmente gerar programas executáveis em diversos tipos de computadores com diferentes sistemas operativos.
Digamos que este código que já podia ser aberto ficou agora, dentro deste conceito de multiplataforma, ainda mais aberto.

Resumidamente é destas temáticas que falamos quando nos referimos a código aberto ou open source e este é um contributo para gestores e decisores, menos conhecedores destas matérias, poderem decidir melhor.

___________

Exemplo de um pequeno pedaço de código JAVA:

//
// Este é um exemplo de como somar dois numeros
// 
public class Numero {
  public static void main(String args[]) { /* Método principal */
    double x,y; // estes sao numeros reais de dupla precisao
    // System.out.print("x = 2.0"); /* inicializando o "x" */
    x = 2;
    y = 3.0; /* iniciando o y, e fazendo y = y+x; */ y = y + x;
    // escrevendo a soma
    System.out.println("x+y = " + (x+y));
 }
} /* fim de Numero */
é equivalente ao código:

public class Numero {
  public static void main(String args[]) { 
    double x,y; 

    x = 2;
    y = 3.0;  y = y + x;

   System.out.println("x+y = " + (x+y));
 }
}


Sem comentários:

Enviar um comentário