I'm planning to build a website that will be a simple CMS where users submit and view postings with videos, photos and text.
One decision I want to make is choosing between Ruby Enterprise Edition and Ruby 1.9.
Things I care about in order:
- Performance & Scalability.
- Compatibility with existing gems/plugins/open source projects.
- Speed of development and deployment (I will be deploying on a VPS).
What is your suggestion?
REE from my experience has a tendency to throw mallocs in odd places (Jan 2009 tab completion in script/console - https://webrat.lighthouseapp.com/projects/10503/tickets/89-excessive-output-caused-by-and-only-by-running-webrat).
Ruby 1.9.1 has a massive bug in tempfile which blows up Rack (August 2009 present in patchlevel 243 - http://groups.google.com/group/rack-devel/browse_thread/thread/a2aab3a4720f34c4?pli=1). As well as this I do not believe Ruby 1.9.1 to have been tested properly with Rails 2.3.4 (String exclusive or - https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3144-undefined-method-for-string-ror-234).
Quite honestly, it depends on how well you react to surprises. I use an old patchlevel of 1.9.1 on a server running 2.3.3 and other than a patch in Net::HTTP to work with ActiveResource, it runs blazingly fast.
If you don't like surprises, stick to 1.8.7.
Update 10/10/2010
The answer to my question is invalid nowadays, both Ruby EE and 1.9.2 are very good implementations of Ruby!
I'm not quite sure which one I would pick, probably 1.9.2 - or hold out to say what the phusion guys are working on, since they are working on a 1.9 version of REE - but, their 1.8.7 REE is pretty solid.
As stated by Phusion they will not develop a 1.9 version of Ruby Enterprise Edition and declared the End-Of-Life of REE with the End-Of-Life of MRI Ruby 1.8. The reasons for not developing a 1.9 edition are
- A copy-on-write patch has recently been checked into Ruby 2.0.
- Many of the patches in Ruby Enterprise Edition are simply not necessary in 1.9.
- We wish to focus our efforts on Phusion Passenger and other products. Instead of doing many > things poorly, we want to do a few things, but do them very very well.
The full post can be read here.
Therefor I recommend to use the currently available and stable version of Ruby 2.0.0 or the previous stable version Ruby 1.9.3.
my suggestion is to go for 1.9.2 if possible because 1.9.2 is much faster than REE and MRI 1.8.7. However bear in mind that 1.9.2 like its MRI 1.8.7 is not a full optimized version, so you would expect to see more RAM eaten up compared to REE. If you could not upgrade to 1.9.2 yet, I'd recommend you to stick with REE.
Update: REE has just merged all changes from MRI 1.8.7-p334, so it's good and hot ;)
来源:https://stackoverflow.com/questions/1402010/ruby-enterprise-edition-vs-ruby-1-9