Hacker News new | ask | show | jobs
by ballen 6103 days ago
Also why aren't we all using or moving to Ruby 1.9, instead of sticking with 1.8?
7 comments

I think the main reason is simply that 1.8.6 has been "good enough" for most people. It reminds me a lot of Apache 1.3 vs. Apache 2.0.

For a long while, there were also no debuggers for 1.9.1, which is a big deal for some people. Mark Moseley has done a lot of work to get them working on 1.9.1 so luckily this isn't really a concern any more.

http://github.com/mark-moseley

I made Ruby 1.9 my default Ruby using Macports (using the +nosuffix variant) a few months ago. Other than finding a few trivial bugs in my code and some other people's, it's been painless; though of course your mileage may vary.

I migrated my site to Ruby 1.9.1 about a month ago and it was mostly painless. It's now running up to 4x as fast for some requests!

It's finally time to start developing entirely in Ruby 1.9 guys. Trust me.

What does your deployment look like? Nginx/Apache in front of Thin/Mongrel?
We've tried various deployments over the years with various levels of success.

Our 1.9 deployment is Nginx -> HaProxy -> Thin

I had trouble getting Mongrel to work in 1.9 (it was my favorite in 1.8) although apparently you can do it. Thin just worked(tm) so I switched to it painlessly.

I'm guessing passenger... they've had support for 1.9 for some time now.
I ran Passenger for a while in the past but I really didn't like how it would pause every rails process briefly when spinning up a new instance. Maybe that's been fixed now.

Monit may be harder to set up, but it works very well once it's running.

you mean mongrel? Monit is a monitoring platform...
Actually I meant Monit, sorry.

Ruby has a memory issue with long running processes. They seem to grow and grow and need to be restarted when they get out of hand. People commonly use Monit or God for this.

When you use Passenger, you can have it restart your processes after a certain amount of requests to prevent the memory leak issue, but when it happens it seems to block all requests to all processes for a short time, which is annoying to end users. It means your site can be speedy and zip along, then just pause.

I did but was surprised how many others didn't (and still haven't). There were some hiccups but nothing insurmountable.

Of course I blew everything away upgrading to Snow Leopard so I'll have to replace/upgrade with 1.9 again (though I'm also considering Ruby Version Manager).

1.87 is a transitional release designed to ease some of the pain of moving to 1.9. Some gems and libraries, also, aren't fully 1.9 compatible. I think more so than even these is that getting people to change can be fairly difficult.
Folks can get an idea of the gem migration situation here:

http://isitruby19.com/

It's easier to development on proven technology than to upgrade sometimes, especially when there are tight product deadlines.

Also, running on a Mac, it is easier to use whatever Mac is using so that your code has less bugs across different dev machines.

One of the big improvements ruby enterprise edition made is to make Ruby's GC copy on write friendly. This allows you to run a lot more ruby processes per frontend in a web environmet, since you're usually ram limited.

Afaik 1.9 didn't address this.

the reason for me is that (afaik) ruby-debug doesn't work with ruby 1.9.

im soo much more productive when i can set a break point and see why my flow isn't working.

Hello, you can find a port here:

http://wiki.github.com/mark-moseley/ruby-debug

fantastic! thnx