Ruby on Rails IDE

I do really recommend checking out RubyMine from JetBrains - it is designed specificaly for Ruby/Rails. Just give it a try and You will search no longer

Thought I'd chime in here. Although I use mac+textmate [1] now, earlier I used gEdit under Ubuntu. You can pimp it out to be like TM by following these instructions:

Cheers, Ed

[1] Got the mac only to use textmate with RoR work.

Ed Howland

http://twitter.com/ed_howland

So you got yourself a $3500 text editor? Congrats.

I think it is deplorable that there aren't any good [1] Ruby IDEs out there. Python comes with one (Idle).

[1] By good I mean free/open source and best of breed.

Rewriting the Python description of IDLE:

"coded in 100% pure Ruby, using the tkinter GUI toolkit cross-platform: works on Windows and Unix multi-window text editor with multiple undo, Ruby colorizing and many other features, e.g. smart indent and call tips Ruby shell window (a.k.a. interactive interpreter) debugger (not complete, but you can set breakpoints, view and step)"

It seems to me we have all these pieces already. Wirble, ruby-debug, window library wrappers.

It should be so good, X-Platform that it should ship with the basic Ruby distribution (like rubygems does now w/1.9). Or it could ship as a gem.

Other features I'd like. RVM and Bundler support. Rails/Sinatra colorizing*, code completion. (I don't like tips or hints - hated BBedit for that reason).

*extensible with snippets/bundles.

Cheers, Ed

Ed Howland

http://twitter.com/ed_howland

Yes! And I'll never go back. :slight_smile:

Seriously, I wanted to add a few items to my wish list for a Pure Ruby IDE:

* Access to Rake tasks (with ability to set environment (production, test) * RSpec and Cucumber aware/runners * Generators (Rails/RSpec/Cucumber others) * Code/Object inspectors - tied to the file (in the gem) where defined. * Code completion on require 'gemname'. * generate a new project file (rails/sinatra app, gem or standalone). * integrate with git (or swappable to svn, etc with API) * (optional) DB inspector (like phpMyAdmin).

Customizable by code snippets/bundles written in Ruby.

Not limited to Ruby. Colorize/Syntax completion HTML/CSS/Javascript/ERb/HAML/SASS/SQL.

And while were at it: Integrate with Johnson to run/debug JS.

Cheers, Ed

Ed Howland

http://twitter.com/ed_howland

I say the same thing about Emacs.

I feel that the whole community is supporting mac and textmate but I found that this is a problem. We should use cross platform tools if we want more people to try rails. All the screencasts I have seen are using with textmate, for example how easy it is to setup an autotest without growl, rspec without output from textmate etc.? How do you do that with other editors, like komodoedit?

Johndel Deliyiannis wrote:

I feel that the whole community is supporting mac and textmate but I found that this is a problem. We should use cross platform tools if we want more people to try rails. All the screencasts I have seen are using with textmate, for example how easy it is to setup an autotest without growl, rspec without output from textmate etc.? How do you do that with other editors, like komodoedit?

You don't. You use the shell like God meant you to. :smiley:

I've said it before and I'll say it again: Rails doesn't need an IDE. For Rails, your editor should just be a project-aware editor, not an editor/shell/VCS manager/godknowswhatelse. Save the IDEs for frameworks that need them.

Best,

I recommend Rubymine without any hesitation. Well worth the money.

Well, here we have it, everyone has their favorite and if it makes you more productive and your development time more enjoyable, good on you.

Personally, I think diversity is a good thing. I for one don’t really like all-in-one IDEs, other people do. Linux people generally already have a favorite editor before they come to RoR and are happy they can just keep on using it. TextMate on the Mac is a really nice editor, but there are other valid choices as well. On Windows, you also have plenty of choices. If you want Textmate on Windows, buy e-TextEditor: it works the same, it almost looks the same and it uses the same bundles as TextMate does. If you’d rather go with something else you’re already used to, by all means, go for it. No one is touting any editor as being “the editor for HTML & CSS”, “the editor for Javascript development” or “the editor for PHP development”, so why would there need to be one for RoR development?

Am I willing to spend money on a Mac (which is far less expensive than $3500 btw)? Yes. Is it because of TextMate… hardly. It’s because working on a Mac makes me a happy programmer and provides me with an OS and application suite that feels solid and intuitive to me, i.e. a Mac makes me more productive. Being productive leads to nice applications which hopefully lead to a solid revenue for the company I work for.

Do I get the same feeling on another platform? No. Is this a personal preference? Yes. Should it matter to someone else what I’m spending my hard earned money on? I don’t think so.

And besides, even if I would run Linux, you can be sure I would be buying a powerful, i.e. > $1500, computer anyway. Why? Because I don’t like waiting, whether that is due to lack of processing power or memory.

Do Macs come with a premium in terms of specs compared to what you can get with a self-assembled PC? Most probably. Does it feel as a premium when looking at a Mac as a whole, i.e. hardware, OS and applications? Not at all.

Peter makes very good points. Thanks for the wrap-up. (And I was just being tongue-in-cheek about the my reasons for getting a Mac.)

Yiannis has a valid point too. There should be a nice X-Platform IDE that ships with Ruby core or is at least considered the de-facto standard. Some people just take to a language if it comes with a nice environment to work in. Eclipse for Java, VS for C++. Just a personal choice, but one that should be available, and might attract more developers.

I think there is a golden opportunity here. Almost all the pieces exist to create a community developed IDE. Perhaps limited in scope at first, but extensible.

There is the TKText widget for the editor. guirb [1] for the irb shell, and we can link to ruby-debug-ide for debugging support.

I think we have to figure out syntax colorizing, and code-completion. Does anyone know of a tabbed window widget for Tk?

Also, is it possible to just eval Tk directly as a string? Then additonal widgets could be added at runtime.

[1] http://github.com/martindemello/guirb.git

Cheers, Ed

Ed Howland

http://twitter.com/ed_howland

You mean like a bash prompt on Linux?

Ed Howland wrote:

Peter makes very good points. Thanks for the wrap-up. (And I was just being tongue-in-cheek about the my reasons for getting a Mac.)

Yiannis has a valid point too. There should be a nice X-Platform IDE that ships with Ruby core

I'd be curious to see what the Ruby community could come up with. I do like the idea of something like IDLE that's actually *designed for* and *benefits* typical Ruby projects.

(I don't dislike IDEs in general, and I'm even using NetBeans for a JRuby/Monkeybars/Swing project, and loving it. I just believe that IDEs are completely inappropriate for *Rails*.)

or is at least considered the de-facto standard.

Why?

Some people just take to a language if it comes with a nice environment to work in.

A good OS, a good text editor, and a good terminal emulator make up a *very* nice environment. Not everything needs an IDE.

Eclipse for Java,

What? No. Eclipse doesn't come with Java, it's not as nice as NetBeans, and in fact Sun is behind NetBeans. Analogy FAIL. :slight_smile:

VS for C++.

Is that really an advantage?

[...]

I think there is a golden opportunity here. Almost all the pieces exist to create a community developed IDE. Perhaps limited in scope at first, but extensible.

No one is stopping you! I for one will be very, very interested to see what you come up with.

There is the TKText widget for the editor. guirb [1] for the irb shell, and we can link to ruby-debug-ide for debugging support.

I think we have to figure out syntax colorizing, and code-completion. Does anyone know of a tabbed window widget for Tk?

Also, is it possible to just eval Tk directly as a string? Then additonal widgets could be added at runtime.

Please, not Tk. The Ruby API is apparently awful, and the resulting applications tend to be really ugly. This is probably a good candidate for Swing/Monkeybars, or maybe wx.

[1] GitHub - martindemello/guirb: Graphical IRB wrappers

Best,

Ed Howland wrote:

Yiannis has a valid point too. There should be a nice X-Platform IDE that ships with Ruby core

Marnen Laibow-Koser wrote:

I'd be curious to see what the Ruby community could come up with. I do like the idea of something like IDLE that's actually *designed for* and *benefits* typical Ruby projects.

I'd love to see the result of such a project. Can it be finished by yesterday? :). I'd volunteer to help, but I'm too new to Ruby to actually be helpful. :slight_smile:

Ed Howland wrote: Some people just take to a language if it comes with a nice environment to work in.

Marnen Laibow-Koser wrote:

A good OS, a good text editor, and a good terminal emulator make up a *very* nice environment. Not everything needs an IDE.

It does, but it doesn't appeal to the audience that Ed may be thinking of. That audience is going to be drawn in much more quickly if they can download a single package that a) includes both ruby and an IDE (a low-footprint one similar to IDLE will do), b) does not require any configuration c) does not require installation of other products either before or after installation of the package to get started.

That is, I should be able to download, run an installer, click on a icon, and starting typing ruby code into an editor that can execute the ruby code. :slight_smile:

Python is very accessible that way. I had a professor in college who is a big fan of Python, he'd use it for teaching in many of his courses. The ability to download a single installer, run it, and get going in IDLE made that possible.

Iain

Iain Davis wrote: [...]

It does, but it doesn't appeal to the audience that Ed may be thinking of. That audience is going to be drawn in much more quickly if they can download a single package that a) includes both ruby and an IDE (a low-footprint one similar to IDLE will do), b) does not require any configuration c) does not require installation of other products either before or after installation of the package to get started.

That is, I should be able to download, run an installer, click on a icon, and starting typing ruby code into an editor that can execute the ruby code. :slight_smile:

You can do that already. irb comes standard, and you can use any text editor for files. If you want to run scripts, "ruby my_script.rb" will do fine. Where's the problem?

Python is very accessible that way. I had a professor in college who is a big fan of Python, he'd use it for teaching in many of his courses. The ability to download a single installer, run it, and get going in IDLE made that possible.

Again: you can do this already. You already have a text editor and a shell suitable for the purpose. Just as with Python, the only installation necessary is the interpreter and standard library.

Iain

Best,

On Fri, Aug 27, 2010 at 12:20 PM, Iain Davis > It does, but it doesn't appeal to the audience that Ed may be thinking

of. That audience is going to be drawn in much more quickly if they can download a single package that a) includes both ruby and an IDE (a low-footprint one similar to IDLE will do), b) does not require any configuration c) does not require installation of other products either before or after installation of the package to get started.

That is, I should be able to download, run an installer, click on a icon, and starting typing ruby code into an editor that can execute the ruby code. :slight_smile:

Python is very accessible that way. I had a professor in college who is a big fan of Python, he'd use it for teaching in many of his courses. The ability to download a single installer, run it, and get going in IDLE made that possible.

Iain

I agree with Iain, here. I'm not trying to preach to the converted. Or to further fan the flames in the editor/IDE wars. But lot's of universities have settled on Python for just that reason: jump in simplicity.

I think that irb is nice. wirble even nicer. ruby-debug is great. But these are all separate tools that you have to install (except for irb).

And I agree with Iain that it should have a low footprint.

I checked out arcadia, but it blew on a missing (non-obvious) dependency But it sounds like it might fit the bill, being X-platform and based on Ruby/Tk.

As far as Tk goes. I am not particularly married to any one windowing toolkit. Would wx, gtk or qt be a better fit, and still be X-platform? I think we should target Windows, Linux and Mac. Tk caught my eye because IDLE is written in it (Tkinter) and makes it a breeze to create other desktop type apps in Python.

I know this sort of thing has been tried before. Scite, FXruby etc. But since they have fallen (or nearly so) the radar, perhaps a fresh approach is needed.

Cheers, Ed

Ed Howland

http://twitter.com/ed_howland

Ed Howland wrote:

On Fri, Aug 27, 2010 at 12:20 PM, Iain Davis > It does, but it doesn't appeal to the audience that Ed may be thinking

Python is very accessible that way. I had a professor in college who is a big fan of Python, he'd use it for teaching in many of his courses. The ability to download a single installer, run it, and get going in IDLE made that possible.

Iain

I agree with Iain, here. I'm not trying to preach to the converted. Or to further fan the flames in the editor/IDE wars. But lot's of universities have settled on Python for just that reason: jump in simplicity.

Really? Or is it simply that Python has had longer to get traction than Ruby? Ruby has the same jump-in simplicity as Python -- in fact, it has more, since it's easier to write working code in Ruby (IMHO -- I can't seem to get anything done in Python, and I know of other Ruby developers who feel similarly).

Do you know of anyone who *actually* chose Python over Ruby based solely (or mostly) on the presence of IDLE?

Best,

Ed Howland wrote:

[...]

I think that irb is nice. wirble even nicer. ruby-debug is great. But these are all separate tools that you have to install (except for irb).

I've never used Wirble as far as I recall. ruby-debug is *one* gem. Where's the big barrier?

Best,

Iain Davis wrote:

That is, I should be able to download, run an installer, click on a icon, and starting typing ruby code into an editor that can execute the ruby code. :slight_smile:

Marnen Laibow-Koser wrote:

You can do that already. irb comes standard, and you can use any text editor for files. If you want to run scripts, "ruby my_script.rb" will do fine. Where's the problem?

Not quite the same. irb can execute code, but (at least I believe this to be true, I'm still new around here...) it isn't an editor. Yes, you can edit code in a text editor, and execute code from the command line...but that doesn't fulfill the criteria.

There's still going to be folks that aren't going to be interested in a product where they have to go to the command-line/shell to start using the product. The idea isn't even part of their world-view, even if they have a vague notion of what a shell is.

I switch back and forth across the GUI/shell dividing line pretty frequently, but that sort of thing was a complete mystery to most of the people I've worked with in the past. On occasion, when we had projects that there just wasn't GUI tools for, I had do some hand-holding through those portions of the project.

My own preference right now for Ruby/Rails is Emacs+shell, but I've worked with folks for whom that'd be an exercise in frustration. Both come from an entirely different world than the one they know.

I think the question to ask is: As Rubyists, what do we want them to learn? Ruby.

So everything else [installation, editing, execution, debugging] should be provided in a form familiar to the target audience and arranged so that it is transparent/smooth. Whatever the solution (IDE or some other clever idea) it should follow the conventions of the platform/OS it is being installed/used on.

Absolutely nothing wrong with Shell+Favorite text editor. That's a route I go often. For me, it is the fastest route to producing code, because I already know that environment. Eclipse was a frustration to me, because I needed to be writing code (Java at the time), but instead I was spending the time learning Eclipse. Eventually, I'll have to admit the bias that created and give Eclipse another try. :slight_smile:

However, the combination of tools that I find familiar and comforting, could be an exercise in frustration for someone else. For instance, someone very familiar with Eclipse would be much happier learning Ruby on that platform (provided the platform supports Ruby). It is frustrating to have X to be your goal, and have to slog through Y and Z.

I admit, it may not be possible to provide comfortable and familiar tools to every potential Rubyist. On the other hand, there's no reason not to try. If a new IDE brings in another segment of the audience, there's that many more folks using and a few them helping to improve Ruby. We all benefit from an influx of new ideas from a segment of the population previously unrepresented.

Okay, I'll stop flogging this horse, I already have a far longer message than necessary. :slight_smile:

Iain

As far as Tk goes. I am not particularly married to any one windowing toolkit. Would wx, gtk or qt be a better fit, and still be X-platform? I think we should target Windows, Linux and Mac. Tk caught my eye because IDLE is written in it (Tkinter) and makes it a breeze to create other desktop type apps in Python.

I've not had experience with Tk, gtk, or qt. I will say I've used wxWidgetsC++ in the past and I was impressed by it. I don't know if wxRuby carries with it the same qualities as its C++ counterpart, though. But this discussion makes me interested in giving it a spin. :slight_smile:

Iain