jeudi 8 mars 2007

Ruby on Rails sur l'IDE Netbeans: Sun redistribue les cartes!

Ok, Rails c'est super cool et tellement puissant que l'IDE est de moindre importance que pour d'autres languages. Mais malgré tout, je suis sûr que ça vous manquait de ne pas pouvoir aller d'un click sur le corps d'une méthode (surtout d'une API tierce), de re-formater votre code afin qu'il reste à la fois beau et synchronisé sur les CVS/SVN...

Et bien Sun Microsystem viens de donner un coup de pied dans la fourmilière:
regarder ces démos (surtout la 2) pour preuve:
http://blogs.sun.com/roumen/entry/two_demos_jruby_on_rails

Voilà tout est là: télécharger Netbeans 6 milestone 7 ici:
http://nbi.netbeans.org/m11/download.html

puis installer le plugin Ruby avec Module manager de Netbeans:
Tools > Update Center > Check the web for available modules > Next puis taper 'r' pour trouver Ruby dans la liste des modules à télécharger.

Ensuite après avoir redémarré Netbeans, on peut créer un nouveau projet Rails ou encore le créer à partir d'un dossier source existant.

Voilà, ça ressemble à RadRails, mais:
* si on fait CTRL+click sur une méthode, on va à sa définition,
* si on fait CTRL+espace dans le code, on a l'auto-complétion,
* on peut reformatter le code Ruby;
* on peut apparemment refactorer du code,
* si on sélectionne une variable on voit ses occurrences dans le fichier,
* on peut aussi tourver les références dans le projet entier
* on à l'aide RDoc dispo avec l'auto-complétion
* on peut lancer son serveur/navigateur avec F6

Moralité, à ma connaissance aucun des IDE Rails que j'ai pu tester ne proposait tout cela (ni Textmate, ni Radrails, ni Emacs + plugin Rails, ni JEdit + plugin Rails, ni Scite)

Enfin, notez que JRuby pourrait bientôt également être une excellente implémentation de Ruby pour Rails; En effet, le tout récent JRuby 0.9.8 pass plus de 98% des tests de non régression de Rails. C'est un peu plus lent que Ruby MRI (mais plus tant que ça) et surtout les développeurs travaillent très dur à la compilation Just In Time par la JVM Hotspot du code Ruby. D'ici quelques mois JRuby sera plus radide que MRI Ruby dans l'essentiel des benchs.

PS: troubleshooting: si Netbeans ne s'ouvre pas sur votre distro Linux avec Desktop 3D Beryl il suffit d'ajouter ces lignes dans votre fichier /etc/environment (puis redémarrer votre session et Netbeans):

AWT_TOOLKIT="MToolkit"
export _JAVA_OPTIONS="-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAnd$

7 commentaires:

Unknown a dit…

Merci pour cette info qui vaut de l'or !

Alexis MP a dit…

Roumen (l'auteur des videos) sera à Paris le 19 mars pour les Sun Tech Days (inscription gratuite): http://fr.sun.com/sunnews/events/2007/mar/techdays/index.html

Raphaël Valyi a dit…

Alexis,

merci du renseignement, possible que j'y fasse un saut, mais pas sur que ma boîte me libère pour ça.

A part ça, à noter que Radrails va prendre un nouveau souffle grâce au support tout récent d'Aptana.

Raph.

Olivier BONNAURE a dit…

Bon j'ai installé netbean 6 pour linux et dès que j'installe le plugin Ruby (avec toutes les dépendances) j'ai des erreurs lors du redémarrage de netbeans me disant qu'il manque qq chose qq part ... cela fonctionne, mais j'ai des fenêtres d'erreur à chaque ouverture d'une page

L'erreur en fonction concerne :
java.lang.NoClassDefFoundError: org/netbeans/modules/html/editor/options/HTMLOptions

Qu'un à une idée ?

Unknown a dit…

J'ai le même pb quOlivier
Olivier. Tu as résolu ?

Raphaël Valyi a dit…

Olivier et Jean-Armel, essayez avec la Milestone 9 de Netbeans. J'ai aussi eu ce problème temporairement mais avec cette version ça marche nickel.

Ce genre de problème est en effet très gênant, cela dit, si vous installez Eclipse 3.3 beta, vous remarquerez de bugs tout aussi graves lorsqu'on veut installer les Web Tools pour le J2EE par exemples, je l'ai appris à mes dépends...

Raphaël.

Ranska a dit…

bin ça marche pas du tout!!!!!!!!!

apres avoir choisi le plugin ruby
netbean redemare
mais plante!
plein d'extention refuse de ce lancer.
Et puis je sais pas comment deinstaller. Et la je me demande si j'ai pas pouri mon system avec un program instable?

Que faire.