Ruby On Rails - IDE War 3 - NetBeans Hudson Ruby IDE
Continuando com a comparação de IDEs (primeira parte aqui, e segunda aqui), nesta terceira parte da Ruby On Rails - IDE War, vou falar um pouquinho sobre o que achei do NetBeans Hudson, que é um build do NetBeans com suporte apenas para Ruby e Ruby On 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 NetBeans nasceu como uma IDE Java, hoje é um projeto patrocinado pela SUN, e tem melhorado a passos largos, principalmente no que se refere a desenvolvimento “bleeding edge”, quer dizer, ele sempre tem suporte as últimas especificações que estão sendo desenvolvidas no JCP, em alguns casos mesmo as especificações que ainda estão em DRAFT ou seja, ainda não saiu a versão final.
No inicio deste ano, se eu não estou enganado, o pessoal do NetBeans disponibilizou um “addon” para desenvolvimento Ruby, e a pouco tempo, fiquei sabendo que existia este build do netbeans apenas para RoR, que para o foco deste post é mais do que perfeito, ja que este é o único recurso que interessa ao escopo desta comparação.
Até a versão anterior do NetBeans (5.5) o editor de código dele era sofrível, mas felizmente, o suporte a Ruby faz parte do desenvolvimento do NetBeans 6.0, em que o editor de código melhorou muito, mas muito mesmo …
Valeus Marcelo, ja descobri que o VIM tem code completion, vou ter que aprender muito ainda sobre o VIM pelo jeito …
Mas vamos la:
Seguinte então com o Ruby On Rails - IDE War
Como eu comentei em outro post, uma das coisas mais importantes para mim em uma IDE é o code completion (também conhecido como IntelliSense pelo pessoal que veio de ambientes Microsoft), e o NBH (NetBeans Hudson) até que se acha muito bem com o code completion para código ruby (mesmo não sendo especializado para o Rails) como podemos ver na imagem a baixo.

O que quero dizer com o “especializado para o rails” é que ele podia mostrar o find_all ou coisas do genero, que todos nós sabemos que vai estar la em tempo de execução, mas mesmo assim a IDE não mostra ele ![]()
Ja para os arquivos .rhtml que parece ser um problema para a maior parte das IDEs, o NBH não ajuda muito também …

Eu não consegui encontrar nenhum tipo de ajuda para a edição dos arquivos .rhtml, apenas para as tags HTML, e ele ainda insiste que os IDs (por exemplo em um <label for=”idDoOutroComponente” />) são erros e apontam para coisas que não existem.
Sim, eu concordo que este é um tipo de validação muito dificil de ser implementado, mas seria interessante se fosse pelo menos possível desabilitar a validação de IDs nestes arquivos que possuem geração dinâmica de conteúdo …
O NBH possui uma ótima integração com o rake, possibilitando executar, acho eu que, qualquer task do rake a partir do menu na IDE, mas como eu comentei antes, eu prefiro fazer isto ainda via console

A única vantagem que encontrei em fazer isto via IDE é quando eu estiver desenvolvendo alguma task para o rake, pois aparecem links para a linha de código que possui erro no console do NBH, o que facilita muito a correção destes erros.
Uma coisa que não gostei muito foi o comando generate, que apresenta a tela abaixo …

Não parece, para mim pelo menos, uma coisa integrada com a IDE esta janela com as opções de generators, prefiro a abordagem do IntelliJ IDEA, mas ainda acho mais interessante esta abordagem do NBH do que a view que fica sempre ocupando espaço na tela do RadRails.
Uma coisa que achei legal desta view é a opção de instalar mais um generator “on the fly”, que abre uma tela que pesquisa GEMs que terminem com a palavra generator …
Sim, eu concordo que a geração de código é apenas um inicio rápido para o projeto, não uma coisa que se passe o tempo todo utilizando (por isto ainda prefiro a abordagem do NBH a do RadRails), mas é divertido poder procurar um novo generator na hora de fazer isto ![]()
Esta é a tela de “pesquisa de generators”

Que nada mais é do que um “gem search”, mas eu gostei da abordagem, e pelo que eu vi até agora, só o NBH e o RadRails integraram isto na IDE (não que eu ache que isto vá fazer muita falta).
O que demonstra que eles realmente querem que se faça tudo o que for preciso de dentro do mesmo ambiente.
E por último, mas não menos importante, o NBH foi a única IDE que eu testei, que integrou o “rake db:migrate”

Como eu comentei sobre os generators, tenho a mesma opinião aqui, não acho que esta é uma tarefa repetitiva, mas eu achei bem interessante a integração, ainda mais podendo escolher a versão a partir do menu mesmo …
Parecer Geral
O NetBeans foi a primeira IDE a integrar suporte ao JRuby, inclusive ele ja vem com uma instalação do JRuby embutida, o que quer dizer que instalando o NBH você não precisa de mais absolutamente nada para começar a programar com Ruby ou com Rails, ainda mais se você quiser fazer o deploy disto em um servidor de aplicação Java EE (o fato de a SUN ter contratado os desenvolvedores do JRuby deve ter algo a ver com isto
).
É possível na criação do projeto, escolher qual Interpretador do ruby utilizar, a opção padrão logo após a instalação é o JRuby qe veio com a IDE, mas é possível e muito fácil escolher outro interpretador (eu não cheguei nem a testar a aplicação com JRuby).
O tempo de start da IDE é um pouquinho maior que do IDEA e bem menor que do RadRails+Aptana, mas alguns editores demoram bastante para abrir em algumas situações, mas ao contrario do RadRails, ele não travou nenhuma vez depois que um editor abriu.
O IntelliSense funciona muito bem, e por incrível que pareça para quem estava acostumado com o NB 5.5, é bem rápido.
A detecção de erros no código é bem rápida também (herdada do NB 6.0 que esta muito bom, mas este é assunto para outro post
).
Só resta deixar os meus parabéns para a equipe de desenvolvimento do NetBeans e do Hudson, pois mesmo não sendo a minha escolha de IDE a integração e o suporte a Ruby e Rails do NBH estão excelentes …
Aguardo comentários, alguem teve problemas? alguma coisa que esqueci de testar? NB Sucks? NB Rocks? Robu On Rails Rules? Onde Esta Wally?
PS.: não, aquela foto de alguem entrando no MSN não apareceu ali de propósito …
[Parte 1 - Rad Rails] [Parte 2 - IntelliJ IDEA]
Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!



Eu tenho apenas um comentario…
o Eclipse que se cuide ! hehe…
Gostei da analise do NB… diferente de vc prefiro executar qualquer task do rake a da IDE… nada contra console… apenas comodo e simples(alias o RoR costuma enfatizar muito isso comodida e facilidade)…
Sem falar que o ambiente ja vem prontinho pra se começar a programar (isso na minha opnião é uma falha tanto com o IntelliJ quanto o RadRails… mas como em geral as ides java fazem a mesma coisa… lhe fazer instalar um monte de coisa uma a uma ja achamos isso normal… lembrem ter a possibilidade é bom… mas ser obrigado é chato)…
Bem como ja deu pra notar minha IDE para ruby é o NB… acho que ninguem o supera em questão de integração…
otimo POST como sempre Urubatan… parabéns
ps: existe mais alguma ide boa pra RoR?
Existe sim, ainda vou falar do DLTK do Eclipse,

não esqueça que o NB vem pronto mas com o JRuby e não com o Ruby nativo, a principio não há grandes diferenças, mas alguns módulos em C não vão funcionar
PS.: alguem se anima a escrever um review do famoso TextMate? eu não tenho um Mac infelizmente, então não vou poder escrever este
Bem, sinceramente, nao gostei, prefiro o Aptana, achei complicado a maneira do NB trabalhar, como uso o Firebird como BD, ao fazer um teste aqui o mesmo se recusou a funcionar, fui ver era o plugin do Fireruby, pelo proprio sistema de gerenciamentos de plugins dele (Esta parte gostei), instalei-o e mesmo assim continuou dando erro, fui ver, e era por que a IDE usa o JRuby. Tentei faze-lo funcionar com a instalacao do Ruby que tenho instalado a parte e que funciona muito bem com o Aptana mas nao obtive sucesso.
nao entendo como o time do JRuby libera a versao 1.0 sem ser 100% compativel… tah pedindo pra queimar a cara.
Bem segundo o Ola Bini realmente não ta 100%… mas esta 99% oque acho que é suficiente para se liberar… aparentemente o projeto esta bem do que simplesmente “utilizavel”… não vejo grande problema em terem liberado o JRuby com 1% de falha… (na verdade menos…. to arredondadno ehehhe)… apenas minha opnião…
Dyego, 99% dos testes que existem hoje passaram, o esquema dos gems com parte em C/C++ não funcionarem é limitação da plataforma java …
mas a culpa de não se poder dizer que é 100% compativel é do próprio Ruby, pois não existe uma especificação para que se possa testar contra ela …
Existem algumas iniciativas de criação de suites de testes para compatibilidade, mas nada oficial e nada 100% ainda …
Joseh, eu usei o NB com o ruby que tenho instalado e não o JRuby e tudo funcionou tranquilo …
deve ter sido algum problema de configuração …
Bem, sei que nao está no contexto, mas se voce puder mostrar o caminho das pedras em um artigo a parte, ou aqui nos comentarios
parece que o Hudson só consegue trabalhar com um interpreter global (não tem como fazer um interpreter por projeto como nas outras IDEs que testei), mas mesmo assim, para alterar o interpreter faz o seguinte:
Tools\Options\Miscelaneous\Ruby
Escolhe o caminho para o binário do interpretador que tu quer utilizar (/usr/bin/ruby no meu caso)
e era isto.
So digo uma coisa, o vim ta bem melhor!