Blog do Urubatan
msgbartop
Desenvolvedor, Palestrante, Escritor, Nerd Assumido e Pai do Marcus :D
msgbarbottom

06 Aug 07 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]

If you enjoyed this post, make sure you subscribe to my RSS feed!

Tags: , ,

Reader's Comments

  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.

    Reply to this comment
  2. |

    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 …

    Reply to this comment
  3. |

    O vim tem autocomplete sim!!
    http://adzdavies.blogspot.com/2006/07/vim-70-autocomplete-with-rails.html

    Reply to this comment
  4. |

    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… :)

    Reply to this comment
  5. |

    Acabei de publicar :D
    http://www.urubatan.com.br/2007/08/08/ruby-on-rails-ide-war-3-netbeans-hudson-ruby-ide/

    Reply to this comment
  6. |

    [...] [...]

    Reply to this comment

Leave a Comment