views:

430

answers:

9

I'm new to Ruby on Rails and so far, I'm having a lot of fun learning it. Coming from the .NET world, it's been quite a switch as my IDE (Visual Studio 2008) sort of handles everything for me, while in Rails everything has been done via multiple applications (Terminal, TextMate, etc).

I've started taking a closer look at RubyMine as an IDE for Rails development, and as a big fan of IDEA and ReSharper, I naturally like RubyMine. It has code-completion, built-in support for RSpec, SVN integration, and so on. However, since the IDE handles so much of the "Rails experience," I wonder if should stick with the TextMate+Terminal approach.

Is a Ruby/Rails IDE like RubyMine going to hinder me?

A: 

Try Netbeans Ruby Edition. It's not quite as nice as RubyMine but it has built-in svn support and similar templates to TextMate. I like it, but then again, I also haven't released the project I'm developing yet so I can't speak much to productivity.

Oliver N.
Netbeans has proper autocomplete / intellisense on method names, which text editors do not, which is great if you can't memorise the entire ruby standard lib!
Kris
+1  A: 

Just remember that the open source world is about choice, so there are tons of IDEs. A popular one is Eclipse that should include rails development as a plugin (and they are very simple to install). Netbeans also supports rails IIRC.

Maybe it is time to get down and dirty with basic component tools, and then find an IDE. I always find when starting a new language that it helps to understand the raw toolchain and how things work before automating.

Personally, unless it is Java development (convoluted in itself) I stay away from traditional IDES and use a modular solution of Vim/Gedit/Makefiles and other automations.

GEdit on Linux/Gnome is a great compromise. You have a basic text-editor with syntax highlighting and a terminal embedded. Then you can add in plugins for auto-completion and class browsing if you want that.

Good Luck

Aiden Bell
I'm worried that I'll grow too dependent on the IDE and thus won't be able to work in a Rails shop without it, should the opportunity ever arise.
Robert S.
IDE dependency is a problem. From day one I used the shell and basic tools. When I saw an IDE with all its needless menus and buttons I nearly had a heartattack thinking "underneath it is simpler". I would advise IDE caution! :) or A standard IDE supporting many languages in the same workflow.
Aiden Bell
+1  A: 

I would use the basics to start (terminal and a simple text editor) until you really get a good understanding of Ruby on Rails. Then once you have that basic underlying knowledge of the framework move to an IDE.

In my opinion if you want to learn use the terminal and an editor, but if you want to be productive use an IDE.

At home I use the basic setup since I am in the process of learning Ruby on Rails. However, at work, where I am a Java developer, I use an IDE. Using the IDE allows me not worry about the small tedious tasks and just worry about programming. Having tools like auto-completion, integrated svn, and integrated debugging tools increases my productivity.

[edit] Also, I don't think the particular IDE matters. They all have the similar functionality. Whatever your the most comfortable with is the best.

Berek Bryan
When I started leaning rails, I ditched the IDE, started using Textmate and never made it back to using an IDE for rails development. The other thing I could have done without is all the scaffolding examples.
Mark Robinson
+1  A: 

I'm going to take a different stance than the others here. I think for most issues you'll spend a great deal of time poking your head in dark corners just trying to learn the basics when you don't use an IDE. They make your life easier and in most cases actually teach you about the software platform you're using. The code suggestions, automatic formatting, integrated help, etc. help you discover the features of the language much faster than say Notepad.

It is definitely important to know the tool chain but I prefer to examine it as I learn from the IDE. See how and why the IDE chose to do something the way it did. In many cases the IDE will use the best practices and/or most popular practices which you can learn a lot from.

Paul Alexander
That's a very good point. Netbeans, for example, seems to wrap the rails and rake commands. It's pretty apparent what's going on.
Robert S.
+1  A: 

When I learned on Ubuntu, I used gedit. I tried to make it like TextMate using different add-ons.

I liked having to use the terminal while I was learning as it helps you to understand all the aspects of the build process. Using a heavy-duty IDE like RubyMine or Eclipse might hide all that and therefore limit your understanding of what is going on "under the covers". Usually this lack of knowledge will pose problems as you get into developing more complex applications.

In my opinion, SVN support is sort of unnecessary in an IDE. It's pretty easy just to open up the terminal to manage your repository, or to use some GUI tool like Tortoise.

I think the only real benefit to using an IDE like RubyMine would be the auto/code-completion functionality. I too am a big fan of ReSharper (used it for C# development) and I would have loved to have some tool like it when I was learning Rails- but doesn't TextMate have support for auto/code-completion?

I would say don't jump into using and RubyMine for at least several months, or even a year, if ever. The extra work that you have to do will pay off in the long run. Stick with TextMate.

Merritt
+1  A: 

I too was using RubyMine; it's an excellent IDE (naturally, being a JetBrains tool), but as a fairly new Rails guy, I found it doing just a bit too much for me. It tends to obscure what's really going on behind the scenes. However, for someone who has gotten accustomed to being able to step through code in a debugger and inspect variables, RubyMine was incredibly helpful and actually added to my understanding of the code (and of course Netbeans and others can do this too; I just really like how RubyMine "handles").

So in general, I say what most other people say: there are facets of IDE use that make things much clearer; just make sure the IDE isn't becoming a crutch.

yalestar
+1  A: 

Whenever I attempt to learn/adopt a language/framework, I try to do things with a barebones editor... Syntax highlighting... then as I learn, I like to add things like on the fly syntax checker (netbeans is awesome at that). Then as I progress and learn the magic of the language/framework I begin to add things like snippets/code completion. At some point you might see a tool that better suits you but doesn't have something like on the fly syntax checking... but at that stage it will no longer matter due to your progression.

Personally, I use netbeans with the jVi plugin... syntax highlighting, syntax checking, debugging and everything come pretty much out of the box... (the jVi plugin required a little customization though).

However, I do occasionally use textmate or vim with rails.vim

phillc
+4  A: 

Disclaimer: I have only used ruby for a very short period of time. But I do believe that my experience as a .NET developer learning other languages is valuable to you.

I'm going to disagree with most people here and say go with the IDE. An IDE is there to make your life easier, not harder. I know that coming from a .NET background autocompletion is how I learn languages. I don't read documentation. I see what my IDE suggests and I see what it does.

I really wouldn't worry too much about not knowing the full details of what goes on on the background, you will figure it out when you need to. In the meantime you will have quite enough to be getting on with learning the ins and outs of the language. You need all the help you can get, if you have written .NET in the past then an IDE will be an enourmous help.

Jack Ryan
Very interesting perspective. Thanks.
Robert S.
That is the flipside of the argument: hide the nitty-gritty details until you need to know about them. It has the benefit of saving time getting up and running.
Merritt
@Merritt: Indeed, and I didn't really think about that. The Intellisense in Visual Studio surely makes things easier, but at the same time, I often "dig deeper" into the choices Intellisense provides, especially when working with a new API. Perhaps this will translate well to RoR.
Robert S.
A: 

If you are coming from .net/VS background, i say go with an IDE. i am a c# developer who work with ruby and rails on my free time(so i am not a 'professional ruby guy) and as Jack Ryan above said, we .net devs are used to a certain way of learning things. it is easier to learn stuff when you have an IDE showing you auto complete options and the relating documentation side by side. this way you would learn fast.

But for something like running generators, rake tasks, tests...etc you can use the console in the beginning (hey you can use a console and a IDE together right? :)). that would give you an idea of whats going on 'under the hood'. later on you could use your IDE's 'runners' or whatever to run the same stuff with a GUI.

thekindofme