Ruby On Rails - IDE War 2 - IntelliJ IDEA

Continuando com a comparação de IDEs para RoR que comecei aqui vamos dar uma olhada nos recursos que o IntelliJ IDEA oferece para trabalharmos com o Rails …

<auto_promoção>
Antes de continuar, se você estiver começando agora e quiser aprender um pouco mais sobre RoR (Ruby On Rails), eu traduzi a pouco tempo o ótimo tutorial Four Dais on Rails: Primeiro Dia, Segundo Dia, Terceiro Dia, Quarto e Último Dia
</auto_promoção>

Para quem não conhece o IntelliJ IDEA é uma das melhores, se não a melhor IDE disponível hoje para se trabalhar com Java, mas ela possui também um módulo que pode ser instalado via o gerenciador de módulos da IDE para se trabalhar com Ruby, este módulo adiciona suporte para Ruby e Ruby On Rails …

Achei interessante a idéia pois assim é possível se trabalhar com mais de uma linguagem na mesma IDE, ja que estou começando a pouco com o RoR, mas ja trabalho com Java a algum tempo, por tanto, a maior parte dos projetos que desenvolvo e a grande maior parte do histórico é em Java …

Seguindo então com o Ruby On Rails IDE War

A coisa que mais sinto falta quando estou utilizando o VIM ou o Kate para editar qualquer tipo de código fonte, é code completion, até o bash completa automagicamente os comandos disponíveis, por que eu preciso decorar todos os métodos de uma classe?
Claro, eu sei que em linguagens dinâmicas não é possível adivinhar todos os métodos disponíveis mas boa parte deles não é dinâmico :D
Uma ótima surpresa ao utilizar o IDEA para editar uma applicação Ruby On Rails é o code completion deles …

Todos os métodos definidos para a classe ja estavam ali disponíveis para serem chamados, e o melhor de tudo, com a documentação em um popup :D
Como pode ser visto na imagem acima, até mesmo nos arquivos rhtml, o code completion funciona beleza :D Isto me poupa bastante tempo, pois ja mostra os métodos para criação dos controles dos formulários, com os parametros possíveis …
Agora eu não preciso mais ficar 100% do tempo com a API do Rails aberta em uma janela do browser :D
O Legal é que este code completion ja mostra inclusive os métodos que eu adicionei nos helpers da aplicação também :D
Quando eu estiver editando o Model, os validates_* ja estão todos la também (claro, isto a gente acaba decorando com o tempo … )

Mas alem do code completion estar espetacular, o IDEA também possui diversos templates de código ja prontos …

A minha única reclamação é que os templates não tem um nome exatamente intuitivo …
Como por exemplo:

  • va para validates_associated
  • vc para validates_confirmation
  • vp para validates_presence

Claro que uma vez isto decorado, é muito mais rápido …

Uma outra coisa espetacular do IntelliJ IDEA é que ele possui 3 tipos de code completion …
CTRL+SPACE - code completion normal, todas as possíveis classes, métodos e assemelhados …
CTRL+SHIFT+SPACE - smart completion, só o que provavelmente se encaixa naquele contexto …
CTRL+J - smart templates

Para facilitar um pouquinho para quem esta começando, e até para melhorar a integração IDE/Rails o menú “File\New” inclui todos os possíveis generators, inclusive os “não padrão” que estiverem disponíveis …

Eu achei esta integração dos generators bem melhor que a do RadRails, pois neste caso, parece que realmente faz parte da IDE e não que é algo que foi jogado ali por que foi a única forma que conseguiram …

Refactoring


Refactoring sempre foi “O” recurso mais espetacular do IntelliJ IDEA (fora o fato de a IDE parecer inteligente e se adaptar a forma de você trabalhar :D ), mas como pode ser visto no screenshot acima …
Quase nenhum Refactoring foi portado para o plugin de RoR ainda …
O plugin ainda esta em desenvolvimento, e com certeza haverão muitas melhoras neste ponto até o release oficial do plugin e do IntelliJ IDEA 7 …

Uma dica para quem estiver com o último EAP instalado, e estiver triste por que o plugin para Ruby não funciona nesta versão ainda …
Eu abri o jar, alterei a versão compatível no plugin.xml e tudo funcionou sem problema algum :D

Além dos screenshots

Além destes screenshots também existe um menu para as actions do Rake, que eu particularmente não acho tão útil assim, exceto pelo fato de facilitar a execução dos testes a partir da IDE.
É possível executar a aplicação em modo debug com o webrick ou o mongrel, e colocar breakpoints em qualquer parte do código …
Só não consegui breakpoints nos arquivos .rhtml, mas a principio isto é até uma coisa boa pois evita que algum desavisado tente colocar lógica na camada de apresentação :D A configuração de servidores para execução da aplicação funciona exatamente da mesma maneira que para executar aplicações Java, o que garante consistência na experiência do programador …
Diferente do RadRails que para executar uma aplicação Java se usa um menu e para startar uma aplicação rails se utiliza outro …
É possível facilmente utilizar tanto o Ruby como o JRuby como interpretador …

Parecer Geral

O IntelliJ IDEA como sempre superou as minhas expectativas, exceto pelo fato de o suporte a refactorings ainda não ter muitos recursos para o Ruby, mas mesmo assim, a “inteligência” da IDE continua ajudando bastante na produtividade …
Outra coisa interessante é a performance dos editores, depois dos 15 segundos que o IDEA leva para inicializar na minha maquina, trabalhar com o editor de Ruby ou RHTML dele teve praticamente a mesma performance de se trabalhar com o Kate ou o VI, e digo praticamente por que não medi apenas, pois não ocorreu nenhum travamento ou qualquer coisa do genero (coisas que me decepcionaram bastante no RadRails).

Só deixo um aviso:
Se você acha que não vale a pena pagar por uma IDE que vai aumentar a sua produtividade, nem teste o IntelliJ IDEA, pois é bem provável que você fique viciado nele e acabe comprando uma licença …

[Parte 1 - Rad Rails] [Parte 3 - Net Beans Hudson]

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

6 comments so far

  1. Acho que esse negocio de pagar por IDE está com dias contados… logo logo o pessoal da JetBrains vai ter que procurar outro negocio para ganhar dinheiro…

    cada vez mais o mundo se resume em eclipse e netbeans….

    Eu HOJE , com IDE’s ricas em recursos como NetBeans e Eclipse ( até mesmo o JDeveloper) sao mais do que motivos para nao investir em uma IDE como Itellij…

    Fora que mesmo sendo paga levou algum tempo para ela suportar Java EE 5 de maneira madura… enquanto por exemplo o NetBeans já tinha suporte a decadas…

    Pode nao ser o MELHOR suporte… mas eh muito bom…

    isso eh uma opiniao PESSOAL eh claro.

  2. Urubatan August 6, 2007 4:29 pm

    pode ser mesmo que isto aconteça :D eu não abriria uma empresa hoje para vender uma IDE para desenvolvimento Java …

    A minha única observação é que ainda falta bastante para o Eclipse e/ou o Netbeans alcançarem a qualidade e recursos do IntelliJ IDEA …
    Mas concordo, acho que este é um mercado decadente …

  3. Marcelo August 8, 2007 1:28 pm
  4. Jeffeson da S Santos August 8, 2007 7:30 pm

    Estou gostando muito dos posts relacionados RoR… estou aguardando pelo testo do netbeans… pelo que tenho LIDO (não usei com ruby… apenas com java) ele não deixa muito a desejar em relação ao IntelliJ IDEA… :)

  5. Urubatan August 8, 2007 8:05 pm
  6. intellis April 16, 2008 6:51 pm

    […] […]

Leave a comment

Please be polite and on topic. Your e-mail will never be published.