A linguagem S foi desenvolvida nos laboratórios da Bell (AT&T Bell), atualmente Lucent Technologies (URL:http://www.lucent.com) por Becker, Chambers e Wilks, e se tornou a base do ambiente estatístico proprietário S-Plus.
Em 1988, John M. Chambers, um dos criadores da linguagem S, foi premiado pela Association for Computing Machinery (ACM) por ter criado uma linguagem de programação inovadora que auxilia o usuário a manejar e retirar informações úteis de seus dados. Nessa premiação foi mencionado:
"Os trabalhos do Dr. Chambers irão alterar para sempre a forma como as pessoas analisam, visualizam e manipulam dados."
Em 1995, dois professores de estatística da Universidade de Auckland (Nova Zelândia) iniciaram um projeto (“Projeto R”, URL: http://www.r-project.org), com o intuito de desenvolver um programa estatístico de domínio público baseado na linguagem S. A denominação R foi uma homenagem aos fundadores Ross Ihaka e Robert Gentleman. A versão R-1.0.0 foi disponibilizada em 29/02/2000 em 11 CDs assinado manualmente pelos deenvolvedores.
Em pouco mais de dez anos esse projeto transformou-se no principal ambiente computacional para a implementação de soluções estatísticas: manipulação, análise e visualização gráfica de dados. Dado ao esforço coletivo organizado, a reciclagem e o reaproveitamento de códigos feitos em S, assim como das linguagens clássicas para o processamento numérico (Fortran e C), o R é, na atualidade, o ambiente que mais tem avançado nessa área do conhecimento.
Embora com as características básicas mencionadas, o R é freqüentemente considerado um ambiente computacional difícil de aprender e usar, feito por e para especialistas ("experts"). Uma parte considerável desse conceito deveu-se à carência de interfaces gráficas simples e eficientes, voltadas para o usuário inicial ou ocasional do ambiente. Uma outra parte, possivelmente, se deva à qualidade didática duvidosa de alguns materiais didáticos disponíveis em apostilas e na web. Adicionalmente, não se pode desconsiderar que computadores e programação significam, ainda, novidade para a vida de muitas pessoas que dele necessitam.
Considerando os ambientes e software disponíveis para a estatística computacional, sem dúvida, aqueles que permitem escolher entre opções de menu, preencher diálogos, apertar botões e verificar os resultados são, inicialmente, mais simples e atrativos que escrever, em algum dialeto compreensível a ambos (humanos e computadores), o que se deseja que seja executado.
Os problemas surgem quando se vai ficando exigente em relação aos procedimentos adotados para alcançar determinado fim. Percebe-se que, por mais que se esforcem, os programadores (construtores de interfaces gráficas) não conseguem colocar tudo na forma desejável por trás dos menus, diálogos e botões. É então necessária uma outra abordagem: instruir o computador, por intermédio de alguma linguagem (comum a ambos), para que ele execute as tarefas em questão. É onde se destacam os ambientes que permitem escrever de forma eficiente o conjunto de instruções necessárias, como o R.
GUI é um acrônimo para "Graphical User Interface". Uma GUI é uma interface computador-homem (i.e., uma forma para humanos interagirem com computadores) que usa janelas, menus, botões e ícones que podem ser manipulados pelo mouse ou freqüentemente por atalhos de teclado. GUI contrasta com CLI ("Command Line Interface"), cujos recursos são baseados exclusivamente em textos e acessados apenas via teclado. Os software CLIs mais familiares são o MS-DOS e o Console do Linux, nos quais é possível interagir apenas no modo texto.
Vários projetos (URL: http://www.sciviews.org/_rgui) estão em desenvolvimento para suprir as deficiências da interface gráfica do ambiente R. Embora não completos, alguns são considerados satisfatórios e estáveis, como o tradicional Xemacs + ESS, “The R Commander” e Tinn-R, para citar os mais freqüentemente usados.
Na maioria dos projetos, o objetivo é subsidiar o usuário de forma eficiente quanto ao uso do ambiente R. Ou seja, proporcionar acesso compreensível e facilitado aos recursos disponíveis, assim como, educar e fornecer bons hábitos de programação no decorrer do uso. Em síntese, subsidiam e ensinam gradativamente a escrever seqüências de instruções (scripts) na linguagem estatística orientada a objetos R, ao mesmo tempo em que asseguram resultados rápidos e consistentes das análises e soluções computacionais.
Sob este enfoque observa-se que, a linguagem R, a interface de diálogo (R Console) e a editoração eficiente do script são elementos centrais e destacados nos projetos de GUI para o R (URL: http://www.sciviews.org/_rgui/). Via de regra, não intencionam esconder a codificação (alguns acham horrível à primeira vista um código R) e substituí-la por diálogos exaustivos. Prefere-se, ao invés disto, dar suporte ao usuário na elaboração dos scripts (conjunto de instruções a serem interpretadas) de forma simples e eficiente.
A origem do projeto Tinn-R (GUI/Editor for R language and environment ) foi um projeto de código aberto denominado Tinn (“Tinn is not Notpad”, URL: http://tinn.solarvoid.com), então desenvolvido em “Object Pascal” sob o ambiente integrado de desenvolvimento (IDE) Delphi 5 da Borland.
Embora os recursos básicos de um editor genérico e simples estivessem implementados, havia ainda muito a ser feito para que o mesmo pudesse ser usado como GUI/Editor para o ambiente R. Os trabalhos no código fonte do projeto Tinn (melhoramento e adição de novos recursos) se estenderam por cerca de cinco meses, até se perceber que, dado às novas necessidades, não seria possível mantê-lo genérico, segundo a concepção original do projeto. A partir de então, novembro/2003, teve início um novo projeto então denominado Tinn-R. É oportuno mencionar que o projeto original Tinn foi descontinuado pela equipe em fevereiro/2004.
Tão logo foi liberado para uso público em suas primeiras versões o projeto Tinn-R ganhou ampla base de usuários (principalmente no exterior) em Universidades e centros de pesquisa governamentais e não governamentais. Muitas sugestões foram enviadas e os trabalhos de codificação e aprimoramento se estenderam por vários anos num total de 132 versões publicadas.
No site oficial de distribuição do Tinn-R (URL: http://sourceforge.net/projects/tinn-r/) estão registrados cerca de 70.000 downloads diretos dos arquivos do programa (fontes e executáveis). Como esse site passou a ser usado apenas em julho/2005, em adição ao anterior sem contador (URL: http://www.sciviews.org/Tinn-R/), sendo o último servidor ainda de versões históricas, é impossível saber o número exato de downloads e a base atual de usuários do programa. Na atualidade a média mensal de downloads é superior a 4.000 cópias.
Sem dúvida, é na linguagem S que residem a flexibilidade, a interatividade, o poder e a síntese do ambiente R. Construir boas interfaces gráficas, que preservem essas características para o usuário avançado, que facilitem seu aprendizado e uso eficiente é, antes de tudo, um "estado da arte" da programação computacional.
Na grande maioria das instituições de pesquisa e ensino superior do Brasil, infelizmente, é comum o uso de programas estatísticos com licenças irregulares (piratas), o que se constitui numa prática ilegal. Entretanto, dada a escassez de recursos orçamentários, aliada ao elevado custo dos programas computacionais, é muitas vezes a alternativa adotada por pesquisadores, professores universitários, graduandos e pós-graduandos, entre outras, nas atividades de análise estatística de dados, geração de relatórios e elaboração de materiais didáticos. O ambiente R e a GUI/Editor Tinn-R oferecem uma alternativa eficiente e viável, por serem ambos de código aberto, de uso e distribuição livre e distribuídos sob a Licença Pública Geral (GPL, URL: http://www.gnu.org/copyleft/gpl.html).
Dado o conjunto de recursos na atualidade oferecidos, o Tinn-R não pode ser concebido apenas como uma GUI/Editor para o ambiente R (seu propósito inicial). Mas sim, como uma ferramenta facilatadora (“case”) de atividades que envolvem geração de textos (LaTeX, HTML, XML, etc) e programação computacional (R e inúmeras outras linguagens de programação).
Na apresentação oral serão abordadas as principais características, funcionalidades e recursos da nova versão (2.0.0.1) do programa.