Archive for February, 2008
Quick comments on using Netbeans for Rails development
I’ve just recently started work back on a rails project, Scoodi. As I’d been out of the Rails/Ruby world for a bit, I thought I’d take the opportunity to upgrade to the latest versions of my IDE of choice, IntelliJ IDEA.
This proved both good and bad, firstly the Ruby/Rails support is much better than last time I’d used it, however it runs as slow as a dog, rendering it effectively unusable. I’ve since backdated IntelliJ from a pre-release version to the 7.0.2 release where the plugin is at least usable.
Update. The JetBrains guys have released a newer version of the Ruby plugin that improves the speed problems quite a bit.
Based on this and the good things I’d been hearing about NetBeans I decided to give it a try. My summary is that compared to IntelliJ (even with the slow plugin) it feels very immature. But perhaps that shows how hard it is to write a good IDE.
Here’s a quick blast of some issues that I encountered while using NetBeans. I think a lot of them are hang ups from my IntelliJ usage, and perhaps if I took the time to learn the NetBeans way I’d have a different opinion. Also, not being a NetBeans user I don’t know which issues are related to the Ruby support vs. NetBeans itself (i.e. issues that are still relevant in the Java version). The issues also represent how far I got with NetBeans, they may appear quite superficial, but effectively hindered my ability to proceed any further (yes I could have struggled on, but why, when I’m used to IntelliJ and it’s good enough).
- I try not to use the mouse too much (I get shoulder pain), so keyboard shortcuts and the ability to drive an application via the keyboard is very important to me. However in NetBeans keyboard shortcuts are not very configurable, you can not have the same shortcut key mean different things in different contexts. For example setting refactoring/undo to Command-Z removes the shortcut on “Action Undo”, which I assume is the normal editor undo. The same for F5 which I re-mapped to refactor/copy, but which was bound to Continue (I assume from the debugger). If my focus was in the debugger, why wouldn’t it grab the F5 and use it in the debugger and not try to copy a file? Also, when you change a shortcut, it tells you if there is a clash, but doesn’t give you enough information to then go and find it the shortcut (to set a different key for example). Some shortcuts also don’t appear to be listed, some I couldn’t find include in-place renaming (default Meta-R) and Forward and Back (Control-Left and Control-Right respectively).
- NetBeans doesn’t auto-save. If you’re used to IntelliJ, this will cause you no end of pain. There doesn’t seem to be an option to auto-save either. It’s probably something you’d get used to, but after three years of not saving when writing code, it’s a big workflow change to go back and save every time you want to check a change.
- Option-Backspace and Option-Delete (delete word backwards/forwards) does not work. You need to select it first (with Shift) then delete. There doesn’t seem to be a binding to re-enable this.
- Spaces doesn’t like NetBeans anymore than IntelliJ. I assume this is a Java/Swing issue on the Mac.
- Netbeans actually works most of the time, reasonably fast. Much better than the IntelliJ plugin (12/01/2008 version).
- The project tree view does not scroll and select the file when a source file is open. So when you drill through to a file you have no idea where it comes from (the path/location doesn’t even seem to appear in the titlebar anywhere).
- No easy way to get a recently used file list (Command/Control-E in IntelliJ). You could use the “back” (traverses recent file visits) but that’d get old quick.
- When you use Shift-Option-left to select a word (left) it selects trailing spaces as well as the current word.
- When you search, there is only one result, they cannot be pinned. So you cannot search once, then again, and switch back and forth between each find result.
- No keyboard shortcuts for getting between the areas of the IDE. You can change to the project view and also to the main editor window, but it appears you can’t navigate to other views (e.g. find results).