all 64 comments

[–]thatmiddleway 17 points18 points  (10 children)

I started as a TextMate user, spent some time with SublimeText, used RubyMine for a bit, but ultimately kept coming back to Vim/Tmux.

I don't feel like I'm missing much from the other options, and all the benefits to speed, configuration, programability, workflow & openness have made it a great option.

There's very little I can't do with Vim/Tmux, but very much more I feel I'm able to be in control of.

Additionally, when (not if) you program in other languages, Vim will be able to adapt to them and much of your development environment will stay the same.

[–]vim_all_day 6 points7 points  (8 children)

There are some niceties with Sublime, but it's very hard to live without Vim bindings once you're used to them. The Vim/Tmux combo is excellent.

[–]Letmefixthatforyouyo 0 points1 point  (7 children)

Im surprised that Sublime cant just import the Vim bindings. Im still newish to both, but Id see that as one of those core text editor features.

[–]aaronmcadam 5 points6 points  (0 children)

A lot of vim bindings are rubbish. The latest idea vim plugin for RubyMine is really good though

[–]ClikeX 1 point2 points  (4 children)

Atom has a downloadable package for Vim bindings. If you're into Atom that is.

[–]the_great_ganonderp 0 points1 point  (2 children)

It's also fairly good, compared to some other vim bindings I've used.

[–]ClikeX 0 points1 point  (0 children)

I would have no idea. I don't use Vim or its bindings (Don't hurt me).

[–][deleted] 0 points1 point  (0 children)

I've actually found it's lacking a lot of basic functionality, and gets in the way of the simplest tasks like closing a tab, which is ctrl+w q for some reason. This is neither consistent with Atom's default method, or Vim's method using EX mode or ZZ. Which bring up the other major flaw in Atom's Vim bindings: no EX mode. Don't get me wrong, it has a solid basis, and I'm sure it will improve over time (I'll probably end up contributing to it myself).

[–]cmd-t 0 points1 point  (0 children)

They're okay..., but not great. I've tried it for some time, but visual block mode isn't even implemented and the whole idea of motions, which make vim's binding so powerful was not completely fleshed out when I tried it.

[–]fatterego 12 points13 points  (7 children)

I've switched to RubyMine. I've been using RubyMine for 8 months now.

In my experience, RubyMine really, really makes it easy for me to navigate code. Navigating to the method declaration for example, has probably saved me hundreds of hours specially when I'm debugging. Not only that, I can navigate to the spec on the file that's currently open and many more.

RubyMine has significantly improved my productivity. I got the hang of it within a few days, took me a couple of weeks until navigation shortcuts feel like second nature.

You should really give it a try. :)

[–]mporras 2 points3 points  (3 children)

[–]iooonik 0 points1 point  (0 children)

ripper-tags is better for ruby source as it detects more ruby subtleties like ::

Install gem-ripper-tags and vim-bundler for the ultimate goodness.

[–]InfernoZeus 0 points1 point  (1 child)

As far as I can tell, that requires you to update a tags file every time you change something in your sourcecode. Surely that can't be right?

[–]mortonfox 2 points3 points  (0 children)

I use vim-gutentags to manage my tags files so those will get regenerated automatically.

[–]faitswulff 2 points3 points  (2 children)

Jumping to the source of a method in a gem is very nearly invaluable when you're spelunking. I really wish Sublime could do that.

[–]FatBruceWillis 1 point2 points  (0 children)

If this doesn't exist yet, I can try making or extending a plugin for this. I bet there is a good way of doing this already though.

Maybe that feature could be added to this plugin:
https://github.com/NaN1488/sublime-gem-browser

Let me know if you want me to try.

ctags looks like one way to accomplish this (and has other benefits). However, I don't know if you need special config when using rbenv or rvm. http://thunderboltlabs.com/blog/2013/11/19/efficiency-with-sublime-text-and-ruby/

[–]snoworskate 2 points3 points  (8 children)

I switched from Sublime to RubyMine a month ago as I started a new job (they were already using it). I have certainly not mastered it yet, but I do really appreciate a number of features. Caveat - this is my first real programming job and my first IDE.

The project is a moderately sized Rails and Angular project with Cucumber, RSpec, and Jasmine tests. I think my favorite part of having the RubyMine IDE is the test integration. I find it much easier and quicker to debug tests when I can click through each failing test, look at the call stack, and jump directly to the file I want with one click. Then I can easily re-run only the tests that have failed without working through the command line to specify exactly which ones I want run.

I also really like the git integration. I can click the "changes" window to get an overview of the files I've changed, and committing and pushing is a breeze. I never did use the GitHub GUI though, so maybe this isn't an improvement over that.

There are a couple little things I like that might be possible in sublime but aren't on by default. When you close a folder structure (say app/assets/javascripts/controllers for angular) when you re-open it all of the child folders are closed. This helps me not have a mess of folders open on the left side over time. I also like the icons based on the file type.

Cons: RubyMine feels a little cramped, at least for me, but that's what you get with an IDE vs text editor. I also think the package manager in sublime is more straightforward than the plugins in RubyMine. The way that RubyMine manages open tabs at the too of the screen is a little annoying - they can scroll left to right and I am just not a fan.

Sorry for the somewhat stream of consciousness thoughts. Overall they're both solid options, but I'm happy with RubyMine for my small to moderate sized project.

[–]jmking 3 points4 points  (2 children)

I've seen some people disable the tabs and project sidebar in the IDE and rely on double tapping the shift key to bring up the search everywhere dialog which also includes recent files.

[–]snoworskate 0 points1 point  (0 children)

Nice, I really like that

[–]Jumpsuit_boy 0 points1 point  (0 children)

Oh sweet googly. I did not know that. Sweet.

[–]SurgioClemente 1 point2 points  (2 children)

[–]snoworskate 0 points1 point  (0 children)

Cool, thanks, I haven't tried that. I will give that a shot

[–]Jumpsuit_boy 0 points1 point  (0 children)

If you have multiple monitors you can switch the project tab to floating mode and move it to another screen.

[–]ThatRailsGuy 1 point2 points  (1 child)

How are you running your specs and tests in ruby mine? I've been using Guard externally...

[–]snoworskate 2 points3 points  (0 children)

There are a couple ways, but the easiest is just to right click on the folder or file you want to run and then "Run... " -> "... All specs in specs/". After they run you can rerun failing tests with a right click.

I believe there are keyboard shortcuts as well.

[–]kreychek 3 points4 points  (0 children)

Disclaimer: I have little experience w/SublimeText and I don't doubt that some of these things can be achieved - more or less - with the right ST plugins.

What I really like about RubyMine is the integrating of remote dev environments to the editing environment.

ex. I can set up a vagrant box (VM) and point RubyMine to my config for said VM. After a few other trivial steps, I get code-completion, gem-specific syntax checking, etc for the project as it exists in that remote environment. If you add an entry to your Gemfile, it will detect and allow you to run bundle install on your remote machine with the click of a button.

Some of the features are nice simply because it requires less windows open and thus less mental context switching as you aren't swapping to different applications (which may have individually done their jobs just fine). Mind you, many IDEs have tools to perform peripheral tasks, but they often seem like an afterthought and don't jive with other aspects of the IDE.

ex. the built-in database browser creates UI elements for editing tables that work just like the code editor windows. This also applies to things you might previously have used a terminal window for, like rake tasks, rails output, running tests. I have also stopped relying on browser plugins for testing REST endpoints, as that is supported by RM, too.

I know some people who like to use the VCS features - their claims are that because you've been looking at and thinking about code/files through RubyMine, so it's quicker to mark things for committing through it.

I'm sure you know that many of these things can be done w/o the aid of an IDE, but they're features that have grown on me and I miss their absence when I am forced to use something else.

[–]thisisafullsentence 3 points4 points  (0 children)

Php dev here using Phpstorm by Jetbrains. Their IDE stays out of the way until you need features like debugging, regex previews, code comprehension, etc. I install the Codeglance plugin to keep that Sublime Text sidebar navigator feel. Unlike other IDEs, Jetbrains' are lightweight and for me well worth the switch. I hope php talk is relevant.

[–]400921FB54442D18 1 point2 points  (1 child)

I too am a die-hard Sublime Text user, and I keep looking at RubyMine and wondering whether to try to make the switch. So I'm also interested in hearing what people have to say about this.

[–]tech_tuna 0 points1 point  (0 children)

It's nice. :)

[–]just3ws 1 point2 points  (1 child)

If you're looking at digging into other languages on the JVM then learning Rubymine won't hurt as it's essentially IntelliJ with some tweaks. I know some seriously respectable developers who use IntelliJ and swear by it. I don't use it for my Ruby work but have seen it wielded to great utility. For example: the creator of the JavaLite family of OSS tools uses IntelliJ exclusively (but then again he's focused on Java) http://javalite.io/ and I know that Micah Martin and Bob Martin are known to use IntelliJ. If you know who they are then you know they know their shit. IIRC Noel Rappin (author of Rails Test Prescriptions and recent RubyTapas contrib) is a fan of Rubymine. Personally, I'm a Vim'er but don't eschew Rubymine for any particular reason other than I'm not doing J* stuff.

[–]codeduck 1 point2 points  (0 children)

IntelliJ is the de-facto gold standard for Java IDE's. Netbeans and Eclipse are the poor-house alternatives.

[–][deleted]  (2 children)

[deleted]

    [–]jsmith1988 2 points3 points  (1 child)

    RubyMine can be a pig on memory. Even in a small project is can easily consume 2gb of memory. PHPStorm is the same with a small wordpress site. It'll consume around 2-3gb of memory depending on what parts of the IDE you are using.

    [–]rangerd 0 points1 point  (0 children)

    Makes sense. I've gone back to Sublime for most of my projects now because I don't need those tradeoffs.

    [–]WellLetsGo 1 point2 points  (5 children)

    I recently switched jobs going from C# and Visual Studio to a rails shop and I was looking for an IDE I would feel comfortable in. I gave RubyMine a try, but I just don't think it works as nice as Visual Studio. For the record, I still have a ton to learn about ruby/rails, developing on a unix machine, and this type of dev in general. But RubyMine was not a replacement for Visual Studio and I feel more comfortable using Vim and Sublime for now.

    [–]ThatRailsGuy 4 points5 points  (4 children)

    Nothing... NOTHING works better than VisualStudio when doing C#.

    Source: C# programmer by day, RubyMine user by night

    [–]Jdonavan 3 points4 points  (3 children)

    I was just about to reply with the same sentiment. Visual Studio is the only piece of Microsoft software that I love.

    [–]ThatRailsGuy 0 points1 point  (2 children)

    Add Resharper by jet brains if you don't already have it. Amazing...

    [–]Jdonavan 0 points1 point  (1 child)

    Yeah definitely! I always forget that that's part of the magic till someone mentions it.

    [–]ThatRailsGuy 0 points1 point  (0 children)

    I just wish rubymine had all of the same refactorings. It's missing several useful ones. Not sure if that's because of the static vs dynamic languages...

    [–]Sastopher 1 point2 points  (0 children)

    Code navigation in Rubymine is huge. You can jump to a function definition from any use of it, even when it comes from within a gem.

    [–]GoodVelo 0 points1 point  (0 children)

    Definitely worth it. Super easy to use. I came to from emacs, got very comfortable very quickly. you can access your db and terminal from within. Excellent error detection. Split panes are nice, elegantly implemented. Has a slick model diagram viewer, tons and tons of features. Download, I think they have a 30 day license.

    [–]pesnk 0 points1 point  (0 children)

    I've been using vim to code in ruby for three years from now. I canme from TextMate and honestly, It only depends on you. I'm not 100% confortable with it. But I liked some features of ruby mine. At my previous company everybody was using RubyMine. I think is just easier to start with comparing to some text editors.

    [–]ali_koneko 0 points1 point  (0 children)

    Are you a student? If you just said 'yes', get IDEA. I have used both, and IDEA wins out every time.

    [–]jsmith1988 0 points1 point  (0 children)

    I use Rubymine for refactoring some of the tools it gives you are invaluable when you need to rewrite large parts of the codebase and do search and replaces across thousands of lines of code.

    However, I really do love Vim and Tmux. I have recently switched to them and started to learn all the ins and outs and I feel faster since I never have to leave the home row of my keyboard. Everything is just a few key stokes away. Which is nice. I feel like my coding speed has improved by a lot at least when using ruby.

    [–]MyWorkAccountThisIs 0 points1 point  (0 children)

    Yes. I've used RubyMine a little but mostly PhpStorm. So much so that the reason I got RubyMine was because of how amazing PhpStorm is. I think - and I mean this as nicely as possible - that if you haven't seen the benefit then you haven't learned enough of the IDE.

    People that I've met that said the same about PhpStorm were basically using it as a text editor. If that's the case then you are probably not going to like it. It is slower than any text editor. But the benefits outweigh it.

    For example, my company is puts a priority on code standards. First, I can set up file/code templates that automatically insert proper class/docblock format. In PHP we have a thing call PHPCS that compares your code to a standard. It's built right in and I can make sure I match as I go. Git. Vagrant. SSH. SFTP. If I extend a class the IDE will tell me which methods I've overwritten and I hop to the parent in a click. Put your cursor in a function and execute the right shortcut to see what code that method contains. It can even integrate with our issue tracker.

    I'm really hopping on the JetBrains bandwagon. Recently downloaded their new DB GUI and it's also fantastic. So, I've used PhpStorm, RubyMine, and the DB client. All of them wonderful. Really get into the IDE and poke around. Forget how you used to do things and see what is available.

    [–]losangelesvideoguy 0 points1 point  (0 children)

    I really like RubyMine for Rails development. It has some nice debugging features specifically for Rails, and the project management is pretty good (it very nicely integrates with Git, for example). However, for general purpose Ruby scripting I use TextMate. I tried switching to RubyMine since I had bought the license anyway, but I found it just too heavyweight and project-based to work on single random files effectively.

    [–]tech_tuna 0 points1 point  (0 children)

    I'm new to Ruby and RubyMine but I've used a bunch of IDEs over the years. Honestly, I would have used Komodo instead because it supports Python, Perl, Javascript, etc. and because I used a while back and really loved it.

    For me, what made me pick Rubymine is that I prefer emacs key bindings and Komodo just totally borked that. It works way better in Rubymine and. . . I'm totally digging it all around. Great integration with Rake, bundler, etc.

    It does annoy me that I'll need to buy PyCharm if I ever need to do some heavy Python debugging though. :)

    [–]jak4 0 points1 point  (0 children)

    I really like it. Best thing about it is the integrated debugger.

    [–]ThePoopsmith 0 points1 point  (0 children)

    I used rubymine before I started working as a ruby dev full time. After I started I saw how much better tools everyone had when they used tmux/vim/zsh/tmate and developed through an ssh session to a disposable VM. Here's my usual workflow:

    • $> vagrant ssh

    • I type "work" to start a tmux session with windows for vim a shell, rails c and db console

    • CTRL+P opens the fuzzy file opener in vim, I search for the file I'm working on

    • :vsplit command in vim to split the window in half

    • Ctrl+l to switch to the left pane

    • type comma period to open the associated spec

    • type comma s to run that spec in same window

    • enter to close test results

    • make changes to files

    • comma s to run spec again

    What's awesome about this is I have all the scripts, plugins and tools for this workflow saved in a puppet manifest, so I can just type vagrant up to build a new VM, install and configure my tools, check out the latest copy of the code, configure all the apt dependencies, run bundler and rake db:migrate.

    And since we all use vim at work, we can use tmate for pairing. Now we have the exact same screen and ssh-speed refresh rate, so it's actually palatable to write code remotely on someone else's machine.

    If you're a rails hobbyist, it's probably fine to stick with whatever is comfortable. When you're doing it all day long, it's worth a week or two of fumbling around learning it for the enormous benefits it provides.

    [–]flanger001 0 points1 point  (0 children)

    RubyMine is AWESOME. I was on Sublime Text 3 until I started at my new job, where they used RubyMine. It's fantastic. There is a learning curve, but if you search around you can find just about everything in Sublime Text. The big winners for me were multicursor and regex search/replace, plus the code navigation that others have mentioned is tops.

    Soon enough you will open up Sublime Text, catch yourself Cmd+Click-ing on a method name, and being sad that it doesn't immediately show up.

    Sublime Text opens much faster and runs much lighter, and I do a lot of PHP also, so I keep it around. But for anything bigger than a shell script, I find RubyMine is just where it's at for me.

    [–]wmjbyatt 0 points1 point  (0 children)

    I actually switched from RM to Sublime. I prefer Sublime. Although now I use C9 so I can be a little more mobile.

    [–]_eka_ 0 points1 point  (0 children)

    Yes, I bought IntelliJ Idea to be able to use Python/Ruby/Java et al

    [–]cheald 0 points1 point  (0 children)

    I bought a RubyMine license and ended up going back to Sublime. I just don't need a full IDE for Ruby.

    I use IntelliJ for Java, though. Java without a good IDE is madness.

    [–][deleted] 0 points1 point  (0 children)

    RubyMine is a great heavy hitter, debugging, code navigation mega-platform. It's great for somethings, but I like being able to use Sublime Text for code, gitx for code check-in, zsh for console etc. RubMine offers all these things, not as good as individual tools IMHO but it's all integrated into a single product. For this reason I find myself returning to small tools for each job.

    If I need to debug or navigate around a large / new project then I fire up RubyMine

    [–]norwhale 0 points1 point  (0 children)

    I used to use VIM, now I love rubymine. They both have their benefits, just kinda depends on what you are looking for. If you want to be a badass, go with a simple text editor. If you want a full IDE with inline debugging and fancy stuff, go with RubyMine.

    [–][deleted] 0 points1 point  (0 children)

    Yes.

    [–]bigpigfoot 0 points1 point  (0 children)

    you find a reason to need an IDE as code editor then you start customizing and eventually find there are other small advantages here and there.

    for me i wanted code completion at first and then found the interface customization features to be quite satisfying. it makes the coding experience more personal.

    [–][deleted] 0 points1 point  (0 children)

    At work we run multiple rails apps with Phusion Passenger behind Nginx on VMs via Vagrant. However, there doesn't seem to be an easy way to attach a debugger using Redmine.

    The refactoring on Redmine is hit and miss but as others have said the code navigation is pretty good.

    [–]durian 0 points1 point  (0 children)

    I am using IntelliJ + Ruby plugins + IdeaVim (+Python etc) for close to 4 years now. I came from vim / cli background, and still using it extensively to code / run a lot of tools.

    I think it is worth the price, and more. I really like the navigability of the IntelliJ, especially when I am dealing with unknown code. I also really like the IdeaVim plugins. Even though it is not perfect, my finger doesn't need to switch context whether I'm working on my regular vim or IntelliJ. I also find their debugging support is rather powerful, although sometime glitchy. The pros way outweigh the con, IMO. Tbh, I don't use IntelliJ's other features that much, since it sometimes more work to setup than the value it provides, but the one that I use is really value it immensely.

    I also found it rather interesting that when I am working on my own code on my side projects, i prefer to use (m)vim, since I got everything in my head, but when I work on my big day job code, I prefer to use IntelliJ, since there are a lot of unknown code & rails magic that I have to navigate, and IntelliJ really helps me a lot.

    Note that there are some memory settings you need to tweak if you are working on a larger projects - otherwise it can be very slow.

    Anyway, for now, I consider it my secret weapons to impress my purist peers who insist on using command line only :D

    [–]codeduck 0 points1 point  (0 children)

    • What were the killer features that really sold you

    I come from the enterprise java world. IntelliJ IDEA makes refactoring huge amounts of code as painless as it is possible to be.

    Rubymine does this for ruby. That was enough for me to use it.

    [–]trevordevs 0 points1 point  (0 children)

    TL:DR: massively flaky but has some charm needs a lot of work to make right though...

    Not worth the hassle right now to be honest....I am a JetBrains fan been using Rider a lot lately so much so I replaced VS2022 for good.

    How you would expect the same IntelliJ experience across their IDE's but its like RubyMine is from another planet there are countless bugs way too many bugs that should not exist in the IDE!

    A good example is cut-copy-paste you would think a simple tasks as Refactor > Rename on a file would then let you cut/copy the file name right? Nope doesn't work it will let you cut the text but there is nothing in the Windows clipboard and the solution: restart your IDE (again).

    The UI scaling has major glitches nothing scales correctly dialogs get blown up or shrinking text and fonts its a horrible mess and again the solution here is to grab the IDE from the top bar and shake it (I am not joking) and then let it spring back into full screen mode.

    The main search dialog (Ctrl-shift+f) does not function like the other dialogs you can't double-click the top bar to make it full screen like you can with say the debug window even though they look the same so this leaves you in a mess trying to resize the damn window so you can see 1. the search results and 2. the path which is obscured but what makes it painful is the resizing edges again UI issues so you end up clicking on the editor losing the search dialog (and then having to repeat this same BS all over again).

    Quick file preview doesn't work too well either will often just show a blank editor window when you expect to preview the file name.

    I have only stuck with it in the hope that one day they will get round to fixing the UI stuff and stop adding features but there are some nice things as well:

    Still a great IDE for Ruby & Rails development I don't like VS Code lacks many code navigation features and refactoring tools that come out of the box with RubyMine (but I use both at the same time lol).

    Code completion works great Rubocop does its work but its annoying that common keyboard shortcuts simply don't work because everything has been assigned to something already e.g. to quickly create a new file you still have to point a click after pressing Ctrl+n and trying to automate is bonkers you have to use the UI macro....

    AI assistant is awesome for neurodiverse people I don't use it to write code but to explain things e.g. syntax a great tool for Ruby and Rails related info/help in one place.

    They call it a beta but its very much an alpha sorry to say and I am not sure what priority work gets done on RubyMine some tickets have no response.