zerosum dirt(nap)

evolution through a series of accidents

zerosum dirt(nap)

The Quest For The Perfect RoR IDE...

December 22, 2006 by nap · Comments

Ruby itself doesn’t directly support multiple inheritance (yay for mixins) but the community sort of does. If you survey a random group of RoR developers, about half of them seem to come from a structured (oftentimes strongly-typed) OO language like Java, and the other half comes from the scripting world. One of the best things about Ruby is that it appeals equally to both camps. It’s a common ground of sorts, a compromise, maybe the best of both worlds. I dig that.

But as everyone knows, different backgrounds beget different toolsets. In the case of Ruby on Rails, it raises the question: do we need a real IDE for this kind of work, or is a simple text editor good enough?

I’ve gravitated back and forth between the two coding camps over the years. It’s a “right tool for the task” sort of thing if you ask me. You want a lightweight project management application that runs on the web? PHP please. You want a robust scalable service for the delivery of digital media and have some money to spend? Let’s do that one in Java. There’s a religious war to be had here for sure, and I don’t want to get into that… The interesting thing (and the point I’m trying to make) is that the tools you come to use and respond to differ depending on that background.

When I’m working in PHP, I use vim. No, really. I tried PHPEclipse and the pluses just didn’t outweight the minuses for me. I also tried Komodo. I’m an old school vi hacker, and I do all my sysadmin work in vi, so it became the natural choice. I don’t regret it. Well, not often, anyway. After all, PHP is a scripting language, right?

When I’m working in Java, I’m spoiled to death by IntelliJ. Yes, it’s expensive. Yes, there’s a learning curve. And yes, it’s worth every damn penny/hour spent. I’ve tried Eclipse. And it’s alright, but it’s not IDJ. The JetBrains guys have delivered what is by far the most intelligent, usable IDE I’ve ever used. That’s my story, and I’m sticking to it.

So is Ruby a scripting language, or is Ruby a proper OO “enterprisey” language? I’d argue that it’s both and that it’s use dictates the classification. But when you’re building Rails apps, you’re firmly entrenched in OO/MVC proper webapp territory, and therefore, imho, that demands the use of a proper IDE. Particularly once a project becomes sufficiently large.

So what do I use when it comes to Rails work then? Well, up until now I’ve been using RadRails with RDT and Eclipse. It works pretty well for the most part. But it’s no IntelliJ. We don’t, of course, have auto-complete yet, but the syntax highlighting is getting there, the generators and rake tasks are wrapped up nicely, as is run output, test execution, etc etc. It’s better, for me, than using vi, by leaps and bounds and it seems to be getting better and better (nice job guys!).

RadRails seems to be the choice for Windows and Linux users, but everyone else I know on OS X seems to be using TextMate. Whoah, what? I’ve never used TextMate — am I missing out? But wait, TextMate is just a text editor right? It’s NOT an IDE and doesn’t aspire to be. Regardless, the popular opinion seems to be that it’s “good enough”.

So what do you use? Are you, like everyone else out there, a TextMate-phile? If so, why? Don’t get me wrong, I understand the allure of a minimalistic text editor for hacking script, but have you been spoiled by something as nice as IDJ in the past? Oh man would I kill for ctrl-space to autocomplete/interrogate an object to discover it’s methods..

I wonder if there are a lot of people who have come over from the Java side of things who have switched to TextMate, particularly people who have used IntelliJ in the past. Am I making a blanket assumption that most of the people using text editors to hack Rails are not Java converts? Am I just overcomplicating the whole thing? Is TextMate really “good enough”?

The entire Rails core team purportedly uses TextMate… Maybe I’m just missing something? I’d love to hear your opinions.

UPDATE: I’m using NetBeans now. And it’s great.

blog comments powered by Disqus