13 ms·
Modern Ruby Development
- gurkendoktor 15y agoI thought the ad-hominem-ish bit about rvm was disappointing. The Ruby landscape is a weird place where each project belongs to one and only one name. Instead of improving on projects, people prefer to invent their own, and then the drama race begins. Open your Gemfile and try to find a gem with a truck factor != 1. I think it is natural and understandable because there are many Ruby freelancers around who desire to build a brand around their name. But the "competition" between rbenv and rvm was not constructive at all so far. It would be much more helpful if there was one .rubyversion file that both would respect, for starters.
- BornInTheUSSR 15y agoIt's always interesting to see differences in people's 'base' stacks. Where feasible I like to have the environment on my dev machine reflect production as closely as possible so I would go with Passenger over Pow, but this is a great little guide.
- Pewpewarrows 15y agoThat's what I use Vagrant for: attempting to mimic production machines as close as possible. But that only happens as I'm testing before a release. Otherwise I use the easiest / best tool for the OS and machine that I'm developing on.
- jimm 15y agosource "http://rubygems.org" should be gem source "http://rubygems.org"
- invisiblefunnel 15y agoThe bundler docs show the former: http://gembundler.com/gemfile.html http://gembundler.com/gemfile.html
- mzatko 15y agoSorry guys, but this post is silly. What is modern on "ruby development" on mac? Why use zsh, xcode? "ruby development" doesn't mean you are doing rails.
- heimidal 15y agoThere's nothing silly about a developer sharing his preferred development configuration. Also, you glossed over the fact that he's not installing Xcode so that he can use its IDE; rather, he's installing to get LLVM/GCC easily. He makes it clear that ZSH is his preference and that he recommends it. The vast majority of developers looking for a guide to set up their machine for Ruby development will be Rails developers. Denying that is silly.
- mzatko 15y agoYou're right, there's nothing bad on sharing someone's preferred config. Calling that "modern ruby development" is silly.
- diminish 15y agoi m moved to gedit and redcar from netbeans on ubuntu for any ruby development. on ubuntu does anyone have any recommendations?
- amirhhz 15y agoTry RubyMine from JetBrains, a very slick product, and worth paying for (I don't pay for much but JetBrains IDEs I make an exception for). In true HN tradition, I must urge you to try Vim. I found this very helpful when I first start: http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressively/ http://yannesposito.com/Scratch/en/blog/Learn-Vim-Progressiv...
- hello_moto 15y agoSometime I don't understand people that use Vim for everything. I used Vim casually so I'm not an expert. I understand that it'll take a while to master it. But compare to netbeans where you can navigate Ruby code quite fast (shortcut to method implementation, class implementation, project browse, auto-suggest, etc), why would I want to use Vim when I have to find the proper plugins (not just one, but a few) before I can be productive (assuming they can do what I mentioned above).
- sunkencity 15y agoInteresting guide, one thing I find lacking in ruby is longevity in projects. Too much cool new stuff, why not just work out the bugs in the existing projects instead? Of course it's easier to write a new half-assed implementation than getting the hard last percent done. Interesting that he roots for homebrew over macports and rbenv over rvm while at the same time voting for capistrano. Of those 3 projects I find macports and rvm to do what I need from them perfectly and capistrano to be really lacking in both performance and complexity.
- invisiblefunnel 15y agoIt seems to me that Homebrew is much more popular than Macports among rubyists. I would like to see actual data though.
- angelbob 15y agoCapistrano is lacking, but has fewer good alternatives. What would you recommend over it?
- Vitaly 15y agowe are using vlad instead of capistrano and are very happy with it. it is much simpler conceptually. Also from several projects that I converted from capistrano to vlad it runs much much faster for the standard deployment process. I'm not sure what is the reason as I didn't investigate it much. we have custom vlad plugins for usual rails related stuff, so our config/deploy.rb scripts are usually about 5-10 lines long. see https://github.com/astrails/vladify https://github.com/astrails/vladify
- sunkencity 15y agoI prefer running stuff on heroku, but that's hardly a solution to the problem.
- nfm 15y agoHave you had a look at whiskey_disk: https://github.com/flogic/whiskey_disk https://github.com/flogic/whiskey_disk ? It assumes you're using git, supports multiple stages out of the box, uses a reset strategy by default instead of having to hack it in etc. I'm planning on playing with it today.
- saraid216 15y agoI thought this post would be about Ruby, but instead it's about Rails. Sort of. :(
- kristopolous 15y agoAlright, let's do ruby then. I use vim with Ri, Rdoc, and ack-grep plugins (https://github.com/kristopolous/vimbuild https://github.com/kristopolous/vimbuild) and then use irb with a bunch of extensions (http://stackoverflow.com/questions/2952793/anything-like-bpython-for-ruby http://stackoverflow.com/questions/2952793/anything-like-bpy...) but there is nothing out there that makes my life phenomenally easy yet (for instance, some really awesome code navigation tool). zsh has built-in autocomplete for ri; try running zsh then do "ri <tab>" (http://qaa.ath.cx/ri.png http://qaa.ath.cx/ri.png); that ought to win you to at least having it installed. And yes, you can do "ri XXX#<tab>" for the second level! (http://qaa.ath.cx/ri-kernel.png http://qaa.ath.cx/ri-kernel.png) For the record, I do straight ruby; I don't even know how to deploy rails.
- crazydiamond 15y agoHow are you getting this completion from ri ? I use zsh, and the rvm's ri (.rvm/rubies/ruby-1.9.2-head/bin/ri) gives no completion at all (ri 2.5.8). However, /usr/bin/ri (ri v1.0.1 - 20041108) does give completion but different from your list. ri K<tab> gives Classes and methods (e.g. Kconv\#guess) and not just classes. So it's a huge list. Thx.
- stephencelis 15y agoIf you want to set your login shell to zsh, go to System Preferences -> Users and Groups. Right-click on your user account and select Advanced Options. Change the login shell dropdown to /bin/zsh. You're better off using `chsh -s /bin/zsh` (or, better yet, `brew install zsh`, append `/usr/local/bin/zsh` to `/etc/shells`, and use that, instead).
- mrinterweb 15y agoPersonally, I don't understand the hype of rubyenv. I really love rvm. I'm not sure why the author called rvm a "mess of bash scripts". I guess because rvm has a lot of features? If I did not care for gemsets and all of the other niceties that rvm has, I guess I would be on the market for another ruby manager. The fact that the author of this article was rubbed the wrong way by Wayne and rvm, rubbed me the wrong way.
- angelbob 15y agoPart of the problem is that it overrides extremely low-level things like cd. That can get in your way pretty badly if there's a bug, or just a feature you don't understand.
- Vitaly 15y agothis is not quite correct. it has a configuration option for this and you can set it to false. it was actually set to false as default for a while after rubyenv was released but then it reverted to true by default as I suppose it a better option for most users. but again, if you don't like this part of rvm, just switch it off
- deleted 15y ago[deleted]
- rsanheim 15y agoHe probably called it a "mess of bash scripts" because, uh, it is a mess of bash scripts. Have you looked at the implementation? RVM is amazing in the functionality it has, don't get me wrong, but it hacks into your shell in some nasty ways and when things go wrong good luck figuring out why without diving deep into the underlying bash.
- jc123 15y agoWhen you have a new box, or when things go wrong, is probably the time to try out "rvm implode" and try rbenv. Reinstalling rubies takes some time and it looks like there might be some time required to configure/fix existing apps to use rbenv?
- blantonl 15y agoA huge flaw of Mac OS X is the lack of a proper package manager. Mac OS X does provide a package manager - the App Store.
- crazydiamond 15y agoI've been using macports for ages, nothing wrong with it. Okay, it does not check to see the stock installs of OSX, and installs its own ruby, perl, python etc. Apart from that it's been very reliable.
- Groxx 15y agoMy main problem with macports has been that it occasionally does not play nicely with manual source-installs, or any other package manager. And damn near everything needs sudo. Everything I've needed has been available in homebrew, and more up-to-date and better isolated and hasn't collided with anything yet. I haven't used it as long as I've used macports, but so far it has been a far more pleasant experience. And incomparably faster - I swear, macports has a sleep() call in every operation. Very much recommended if you haven't tried it, and it cleans up nicely too - you just delete its single folder.
- semanticart 15y agoyou're probably better off not installing all of x-code when all you want is GCC. Try this instead: https://github.com/kennethreitz/osx-gcc-installer https://github.com/kennethreitz/osx-gcc-installer
- uptown 15y agoAny recommendations for a good beginner ruby/rails book? Coming from a PHP world, but want to learn something new.
- telemachos 15y agoFor tutorial/walkthrough with lots of example small scripts Beginning Ruby, 2nd ed by Peter Cooper. For a straight reference The Ruby Programming Language by David Flanagan and Yukihiro Matsumoto. A middle-ground (tutorial first half; reference second half): Programming Ruby 1.9 (aka, the Pickaxe Book) by Dave Thomas. A great second book (maybe even first if you're comfortable enough learning basic syntax on your own) is Eloquent Ruby by Russ Olsen.
- Groxx 15y agoSoftware that lacks a good uninstaller is always suspect, to me. It makes me smile to know that this is all that's necessary to remove RVM: > rvm implode How's rbenv for uninstallation? I'm familiar-enough with rvm that I know I can restore absolutely everything from scratch with a couple config options and a while for compilation - I'm more than happy to spend that to experiment as long as rbenv has a similar panic-button.
- JonnieCache 15y agoYou just delete your clone of the git repo and remove the oneliner from your .bash_profile
- skrebbel 15y agoThis article tells me that i'm not modern because I don't use a Mac, I don't like zsh, I prefer Mercurial, and so on. Why isn't it titled "My brand new Rails development stack on Mac"?
- capkutay 15y agoInteresting...still weighing whether I want to familiarise myself with Ruby/RoR or if I should continue to enhance my python skills and learn Django...I think the fact that more people are talking about Ruby development may sway me towards RoR
- Dalves 15y agoDepends, if I look at my local job listings where there's one ruby listing for every 10 python ones I'd say different but I'll admit that that ratio is abnormally high but indicates that the same trend governs most places bar Chicago. However, if I look at HN submissions, it's almost the other way around. Given that I've worked in three countries in the last 5 years and noticed the same trend in all of them, I am starting to think that Ruby developers are simply more evangelist.
- Xylakant 15y agoI actually miss vagrant/virtualbox in the stack. Why not use a virtual dev environment for every project you're working on. It seems silly to me to install all required components for each and every project on my dev machine, possibly with different/conflicting versions (think: multiple pg server versions etc.) instead of having a self contained environment for every project.