Autor: José Cláudio Faria
Data : 2013/12/26 - 07:03 (Revisado 2018/10/02 - 13:30)

Este texto pretende ser útil para os que estão começando a usar e também para aqueles que estão em busca de soluções para um uso mais eficiente do ambiente computacional R. Pode trazer informações úteis a serem consideradas numa tomada de decisão.

Minha intenção não é criar mais polêmica do que a existente sobre o assunto. Mas sim, prover esclarecimentos para quem está em busca de informações nesse sentido, baseado na experiência adquirida ao longo da minha vida de usuário e desenvolvedor.

  • Primeiro - Não existe a melhor! A riqueza está na diversidade, não numa pretensa unanimidade! (Odiava o tempo em que a única opção era Emacs + ESS! Creio que meu cérebro funciona diferente do de Richard M. Stallman)

  • Segundo - Para nossa felicidade hoje existem algumas boas opções.

  • Terceiro - O que parece satisfatório e bom hoje, poderá não ser amanhã, ou daqui a algum tempo. O motivo? É simples: nós mudamos nossas necessidades com o passar do tempo, a medida que vamos aprendendo, evoluindo, mais e mais…

O bom é muito dependente da formação, hábitos e expectativas em relação ao uso de computadores.

Isto posto, eu diria que os editores expansíveis (Gedit, Vim e Emacs) são as melhores opções para quem quer fazer investimentos sólidos para o futuro.
E isto implica ter expectativas futuras (um tanto arrojadas) em relação ao uso de computadores.

Um aviso: reserve bastante tempo para os investimentos sólidos!

Visão geral do Gedit:
Drawing

Visão geral do Vim:
Drawing

Visão geral do Emacs:
Drawing

Os três foram projetados para serem expansíveis e podem acompanhar sua trajetória ao longo da vida, e não somente em relação ao R!

Em minha humilde opinião:

  • Gedit é a opção mais simples para os acostumados com os editores, GUIs e IDEs atuais.

    • Tem origem e concepção moderna, relativamente recente.
    • Rgedit é na atualidade o melhor plugin para trabalhar com o R. Existem vários outros para diferentes finalidades.
    • Multiplataforma;
  • O Vim se caracteriza por ser portável e leve.

    • Opte por ele se você é (ou pretende ser) um nerd. É um dos vovôs (mas sempre se renovando) na história dos editores.
    • É meu aplicativo preferido quando estou trabalhando sob Linux (atualmente cerca de 80% do tempo).
    • Com a escolha adequada das extensões (plugins - a lista é imensa) você pode fazer praticamente tudo no tocante a edição e processamento de texto.
    • Sugiro o Vim-R-plugin para trabalhar com o R.
    • Multiplataforma;
  • Opte por Emacs se você quer fazer quase tudo (menos editar eficientemente) em um único aplicativo.

    • Para trabalhar com o R opte pela extensão ESS.
    • Multiplataforma.

Eeiii, você não falou nada do RStudio e Tinn-R que na atualidade estão entre os mais usados. Basta dar uma olhada na web…!? :(

Visão geral do RStudio:
Drawing

Visão geral do Tinn-R:
Drawing

Bom… estava falando de investimentos sólidos para uma vida de aprendizado e evolução em relação ao uso de computadores!
Isto significa falar de software que foram projetados (desde a origem) para serem expansíveis (geralmente via plugins, linguagens interpretadas próprias ou suportadas) pela comunidade de usuários:

  • O Vim é expansível via linguagem interpretada denominada Vim script que internamente suporta Ruby e Python: um conjunto bastante poderoso;
  • O Emacs via Lisp (idem);
  • O Gedit não estou certo, mas deve suportar as linguagens de desenvolvimento do projeto Gnome baseados em GTK (geralmente Python).

Considero ambos (RStudio e Tinn-R) soluções muito boas, mas temporais.

  • RStudio: promete, mas ainda tem muito que evoluir.

    • Multiplataforma;
  • Tinn-R: despretensioso, leve e eficiente para usuários que usam apenas Windows.

    • Adapta-se bem aos usuários (não muito exigentes, para os quais recomendo Vim) de qualquer nível.
    • Foi projetado para ser configurável pelo usuário em seus aspectos mais relevantes, mas não é expansível.

Então para que você anda desenvolvendo o Tinn-R se ele não é expansível?
Boa pergunta!

Seguinte, software expansível o próprio nome diz: vai sendo construído/adaptado pelo usuário com o tempo, a medida que ele vai ganhando experiência, vai ganhando confiança, para de ficar procurando tudo pronto e decide aprimorar o aplicativo para seu próprio uso. Ou seja, resolve pagar o preço. (Como eu falei acima: reserve bastante tempo para isso…)

Então, a proposta inicial do Tinn-R foi fazer algo mais simples: ser estável, instalar e usar. Depois foi gasto (bastante) tempo para permitir ao usuário customizá-lo ao máximo possível, mas de forma facilitada, sem precisar gastar tempo testando, aprendendo ou desenvolvendo (o que implica em alguma forma de codificação/programação) extensões. O aplicativo deve prover o que o usuário necessita de forma facilitada, sem restringir a capacidade de customização, tanto da aparência quanto da funcionalidade.

Muitos usuários ainda não perceberam isso no Tinn-R, ou seja, a potencialidade/capacidade de customização. Como não encontram tudo pronto (ele não foi projetado em toda sua extensão com esta finalidade) acabam indo procurar outras soluções. E geralmente o ciclo se repete…

Você quer dizer que, em função de não serem expansíveis, mais dia menos dia eu irei (ou terei) que optar por uma outra solução no caso de optar por RStudio ou Tinn-R? Depende! Do quê? De você, de suas necessidades futuras e da possível evolução desses aplicativos.

Hummm… uma pergunta boba: qual o motivo de não existirem muitas boas opções?
Resposta simples e direta: não é nada fácil programar editores, GUIs e IDEs! Mais difícil ainda é dar suporte ao R. Somente quem tentou sabe. (Um dito popular: se fosse fácil todo mundo era, se fosse de graça todo mundo tinha…) ;)

Considere também que o R é algo relativamente novo (nasceu em 29/02/2000), portanto, estamos falando de um jovem ainda na história da computação. Até onde sei, software é como fruta: leva tempo para amadurecer, adquirir cor, aroma, sabor e doçura.

Para mim a solução ideal estava no S-Plus distribuído pela INSIGHTFUL. Embora o editor em si não fosse lá essas coisas. E um bom editor é algo realmente importante, pois você sempre o estará usando para se comunicar com os interpretadores: S ou R, ou compiladores (LaTeX, etc).

Visão geral do S-Plus:
Drawing

No S-Plus você encontrava todo o poder das linguagens S e R aliado a uma interface gráfica (GUI) das mais bem elaboradas que já tive a oportunidade de conhecer. Ganhei uma licença (de um ano como tester) antes da aquisição pela TIBCO. Mas não uso… Motivos?

  • É pago (e não é barato);
  • Minha Universidade não possui licenças, portanto, não posso ensinar aos alunos;
  • Não democratiza o conhecimento relativo ao aplicativo (apenas no tocante a S e R), pois é de código fechado ou proprietário;
  • O mais importante: acredito no futuro do software livre! Ele mudou e tem mudado minha vida para melhor.

Em minhas buscas na web o novo nome do S-Plus é Spotfire. Existem alguns vídeos mostrando as características do novo produto.

Talvez com o tempo algum projeto de GUI ou IDE do R se aproxime do S-Plus, mas creio que irá demorar… vários tentaram, a maioria (se não a totalidade) estão descontinuados.

Como assim a totalidade? O RStudio não é uma IDE? Sim e não! Está a caminho, no meio do caminho… lembra da fábula do tempo e da fruta? Eu diria em algum ponto entre verde e “de vez”. Principalmente em se tratando de um aplicativo que, embora seja de código aberto, é desenvolvido por uma empresa que tem pretensões comerciais.

E acho que o projeto está perdendo muito tempo reinventando a roda em vários aspectos.
Não existe sentido em:

  • Reescrever um visualizador de HTML. Dificilmente chegará ao nível dos melhores que todos gostam e usam (Firefox, Chromium, etc);

  • Conter o usuário em um frame único (em 2018 a equipe de desenvolvimento coseguiu permitir descoplar e posicionar onde você quiser a janela de edição) cheio de janelas internas. É como prender uma boiada em um pasto pequeno;

  • Disponibilizar uma IDE com baixa capacidade de customização;

  • Vou parar por aqui…

Chamam de IDE devido a ter colocado quase tudo numa frame (janela mãe) única (olha a boiada…), sem contar com a valorosa colaboração externa (HTML), etc. Existem soluções com muito mais características de IDE que o RStudio.

Você terá que dar uma boa olhada no S-Plus (ou em outras IDEs de fato - não são tantas as boas) para saber do que estou falando, observar as diferenças: não dá para comparar!

Oohhh, você não falou que não iria falar mais sobre o RStudio? Desculpe, foi mal: não resisti.

Poxa, você somente falou mal do RStudio! :(
São observações, não críticas. O projeto tem muitos méritos, o principal deles é ser multiplataforma, ou seja, pode ser usado em vários sistemas operacionais. Mais?

  • A indentação automágica de código do editor é excelente;
  • A execução dos scripts é bem rápida;
  • A interface gráfica facilita bastante o gerenciamento de pacotes.

Pronto, juro que não falo mais!

Portanto, se quer algo gratuito: teste as opções de código livre (ainda gratuitas, pois não são sinônimos) existentes; veja a qual melhor se adapta considerando o presente e suas pretensões. (Humm… não se esqueça de agradecer quem as desenvolveu até o estado em que se encontram.)

Se acha que ainda não estão perfeitas ou como você gostaria que estivesse:

  • Sugira melhorias aos desenvolvedores: eles gostam de receber emails de sugestões e elogios;

  • Pegue o código fonte da que você mais gosta, arregace as mangas e mãos-à-obra: faça melhor. É justamente esta a ideia do software livre!

Foi assim comigo, foi assim com muitos…

Bom, você não falou nada daquela minha opção X!? :(
Procurei ficar (novamente na minha humilde opinião) entre as alternativas realmente mais usadas na atualidade.

Repetindo, minha intenção não é criar mais polêmica do que a existente sobre o assunto. Mas sim, trazer esclarecimentos para quem está em busca de informações nesse sentido, baseado na experiência adquirida ao longo da minha vida de usuário e desenvolvedor.

Dentro das minhas limitações de conhecimento, gastei (e tenho gasto) bastante tempo no desenvolvimento de soluções computacionais de código aberto para serem usadas por quem eventualmente as considerem úteis.

Não ganho dinheiro com isso, apenas a satisfação (insubstituível) de ser útil. É minha pequena retribuição pelo movimento software livre que tanto tem me auxiliado na labuta da vida, principalmente nas áreas de ensino da estatística e análise de dados, que é o que mais faço.

Não sinto a mínima saudade do tempo de estudante quando meu computador era recheado de aplicativos pirateados (e cheios de bugs). Affh, ninguém merece…

Creio que ainda seria assim se o criador do movimento do software livre (Richard M. Stallman, mundo pequeno né… sim: o mesmo criador do Emacs) não tivesse tido a feliz iniciativa de fundar o movimento. Serei eternamente grato por isso: muitíssimo obrigado!