Linguagem R




Linguagem R

 R é uma linguagem de programação multi-paradigma orientada a objetos, programação funcional, dinâmica, fracamente tipada, voltada à manipulação, análise e visualização de dados. Foi criado originalmente por Ross Ihaka e por Rovert Gentleman no departamento de Estatística da Universidade de Auckland, Nova Zelândia. Atualmente é mantido por uma comunidade de colaboradores voluntários que contribuem com código fonte da linguagem e com a expansão de funcionalidades por bibliotecas.


Origem

O nome R provém em parte das iniciais dos criadores (Ross e Robert) e também de um jogo figurado com a linguagem S (da Bell Laboratories, antiga AT&T).

R é um ambiente e uma linguagem de programação similar ao S, contudo, é uma implementação distinta do S. Muitos códigos escritos para o S podem ser executados inalterados no R e vice-versa. A implementação comercial de S é S-PLUS.

O código fonte do R está disponível sob a licença GNU GPL e as versões binárias pré-compiladas são fornecidas para Windows, Macintosh, e muitos sistemas operacionais Unix/Linux.


História

Ross Ihaka e Robert Gentleman trabalhavam e eram colegas no departamento de estatística na Universidade de Auckland. Os dois compartilhavam o interesse por estatística computacional e viram a necessidade de um melhor ambiente de software para o laboratório da área. Os dois não acharam nenhum software compatível no mercado e começaram a tentar desenvolver um eles mesmos.

Por conta do contato prévio de Ihaka com a linguagem Scheme pareceu natural para eles começar com um interpretador baseado no dessa mesma linguagem porém já prevendo a necessidade de alterações internas consideráveis decidiram escrever o interpretador por conta própria. Segundo Ihaka a tarefa não foi tão difícil quanto parecia graças ao mapeamento do processo existente em livros como o de Hal Abelson e Gerald Sussman The Structure and Interpretation of Computer Programs e ter acesso ao código fonte de diversos interpretadores Scheme também os ajudaram nos detalhes da implementação.

A primeira versão do interpretador consistia em aproximadamente 1000 linhas de código em C e já contava com diversas funcionalidades da linguagem encontradas em posteriores versões. Para tornar o interpretador útil eles precisavam adicionar estruturas de dados para suportar uso estatístico e escolher uma interface de usuário. Optaram por uma interface de linha de comando e como ambos estavam bem familiarizados com a sintaxe de S, foi natural usarem uma parecida. Essa decisão direcionou o desenvolvimento de R no caminho que ele tomou e produziu algo que parecia muito próximo ao S, a partir daí mais e mais características foram adotadas dessa linguagem.

Porém apesar das semelhanças entre S e R, existem diversas diferenças chaves. As duas fundamentais são resultado da influência do Scheme no R, a primeira refere-se ao gerenciamento de memória. No R uma quantidade fixa de memória é alocada na inicialização e é gerenciada com um coletor de lixo simultâneo à execução.

Isso resulta em pequenos problemas de crescimento de heap e menos problemas com paginação que são vistos em S. A segunda diferença refere-se ao escopo, em S as variáveis de funções ou são globais ou são locais já em R as funções acessam as variáveis que estavam em vigor quando a função foi definida; uma ideia que vem de linguagens mais antigas como o Algol 60 e presente em Scheme e outras com escopo léxico.

Em geral as regras de escopo usadas em R são bem aceitas porque promovem um estilo de programação limpo e foram mantidas pelos criadores apesar do fato delas complicarem a implementação do interpretador.

Depois de aproximadamente um ano Gentleman e Ihaka desenvolveram o que parecia ser um software com uso potencial e começaram a prepará-lo para ser usado pelos alunos no laboratório. Motivados pelo trabalho feito os dois disponibilizaram algumas cópias binárias do R no diretório da Statlib e fizeram um pequeno anúncio na lista de emails da S-news em 3 de Agosto de 1993. Diversas pessoas utilizaram os binários disponibilizados e ofereceram feedback. Ihaka destaca uma pessoa em especial como sendo a mais persistente, Martin Mächler do Instituto Federal Suíço de Tecnologia em Zurique na sigla em Alemão ETH Zurich, quem os encorajou para lançar o código fonte do R como software livre.

Apesar de algumas dúvidas iniciais em Junho de 1995 os dois concordaram em disponibilizar o código fonte por FTP sob os termos da licença geral promovida pela Free Software Foundation. Na época o desenvolvimento do R era um processo relativamente fechado, Robert, Ross e posteriormente Martin recebiam os relatórios de bugs e de tempo em tempo disponibilizavam versões atualizadas da linguagem. Não havia nenhum forum para os usuários discutirem entre si, então foi decidido criar uma pequena lista de email por onde as discussões voltadas à linguagem aconteceriam. Com o crescimento do interesse pela linguagem manter a lista de email começava a não parecer mais uma opção viável, até porque em Auckland eles estavam pagando pelo serviço de email e o custo começava a ficar notavel. Matin então se voluntariou em hospedar o serviço de manutenção automatizado das listas de email na ETH Zurich. Em março de 1996 a lista r-testers foi criada e aproximadamente um ano depois foi substituída por três novos grupos de notícias: r-announce, r-help e r-devel. Foi percebido também a necessidade de uma de uma forma melhor de distribuição Kurt Hornik e Fritz Leisch então tomaram a tarefa e estabeleceram o Comprehensive R Archive Network com a sigla CRAN.

Com a criação desses grupos o desenvolvimento do R acelerou por conta das contribuições que variavam desde correções de erros ortográficos até mudanças significativas em funcionalidades e performance. O nível de contribuição era tão alto que os três não conseguiam realizar mudanças na frequência desejada por aqueles que pediam. Com o objetivo de mudar isso em meados de 1997 foi estabelecido um maior grupo principal de pessoas que poderiam fazer mudanças no código fonte.

Em 29 de Fevereiro de 2000, o software foi considerado com funcionalidades e estável o suficiente para a versão 1.0. R contava com um ciclo regular de seis meses de atualizações e havia algo em torno de 20 desenvolvedores, incluindo pesquisadores bem conhecidos no meio estatístico, no grupo principal mantendo e expandindo as funcionalidades básicas do interpretador da linguagem. A partir daí R se tornou um projeto colaborativo internacional de desenvolvimento e pesquisa mantido formalmente pela R Foundation, uma fundação sem fins lucrativos situada em Vienna, distribuído pelo CRAN e ainda sob a licença de software livre.

Comentários