I’m stopping all my ruby on rails development. Its been a while since my last rails line was written and I will not continue to develop on that framework.
Here are my reasons for this:
- Documentation and entry point price
- Community problems
- Hosting
- Production deployment “trends”
- Ruby gems
First of all, to get any serious documentation on how to use the framework, you have to buy Pragmatic Programmer’s Ruby on Rails book. While its a good read and all, its a $40 US dollars (ok, now its $19.95, but I bought it when it was recently published) entry price to get serious on the subject. Another good resource are the Peepcode’s videos. They are excellent reference material, but still there’s a cost. Its not that I’m against commerce and all that. I’m just making the point that there’s very little or no good documentation for rails for free. Plus, there’s a disadvantage on printed books that they’re not up to date with the latest changes. There’s a lot of “when rails2 comes out…” comments on it.
Then are the community problems. Its people and people sometimes don’t get along, but the comments from Zed Shaw, the mongrel web server developer are something to pay some attention to. Besides, he’s also stopped development on mongrel, so the installation trend must, or probably by now has, shifted again.
Another big problem is the hosting support. All the projects I’ve developed I’ve tried then successfully on my development computer and on some self owned servers. Hosting support for Ruby on Rails is still not very common, so if any of my clients don’t have control over their server and their hosting solution doesn’t support it, its bad.
One of the main problems I see often is production deployment “trends”. The method to succesfully deploy a rails app on any server changes constantly. First, the recommendation was fastcgi with lighttpd, then it was mongrel servers doing load balancing with an apache server, then capistrano, then nginx, now I’ve lost track of what to do. Even on the book this ambiguity is mentioned.
And finally, now that we’re talking about owning a server and deploying it for production, the final caveat is the ruby gems mess, described on more detail on several Debian developers (Wouter, Gunnar, Luke Kanie) blogs.
So, with all this in mind, I’ll be looking to port some of my already developed rails apps to Django. I’ve seen a lot of progress on this framework and like a lot of its design concepts. As much as I’ll miss a lot of ruby’s syntax and “sugar”, python is not bad either and its also a very comfortable language to work with. There’s a lot more libraries for python than for ruby to build stuff. Also, its interpreter is a lot faster than the ruby1.8 one. I know there’s a promise that ruby1.9 will be a lot faster, but its not ready yet.
Finally, I see there’s a lot of good stuff in Rails, but for me, right now is not a good time to jump on that ship.
23 replies on “My 5 reasons to leave Ruby on Rails”
Welcome to the Light Side, padawan
I can’t agree more with the problems regarding Ruby on Rails (and Ruby) and documentation. I love some aspects of Ruby, and I love and hate some aspects of Python. But building or trusting in a framework in general is also not on my list of things to do.
I think an internal framework (if any) is the only way of avoiding all these pitfalls. Using a scripting language in general is already stretching your level of control and relying on support teams to do the dirty work. I just feel like a framework is a framework is a framework and they all sort of suck.
Maybe I’m just and old and cranky C developer who likes building things out of concrete instead of duct tape but at least I can make it solid.
For hosting I recommend http://www.slicehost.com/ if you’re a sysadmin type of guy and want total control or http://www.webfaction.com/ if you’re happy to let other people configure most of the server for you. They’re both good hosts and have good support for Rails.
Before you make any definitive decision, have you given a try to web2py? I would like to hear your opinion about it.
As a reality check, I’d note that the challenges related to hosting are somewhat inherent. I speak as someone with a lot of experience deploying Python/Django sites. I’m good at it, but I help a lot of newcomers up the initial learning curve. Slicehost and Webfaction (mentioned by Mike above) are both good for Django hosting. There’s still no getting around the fact that deployment of a Rails or Django site is not an upload-and-forget operation. Such is life when making modern web apps, IMO.
In any case, welcome!
1. the issue with documentation, I have never thought was a big deal.. rails the framework itself is reletively young, and moves very quickly. But overall, the framework was started by contractors solely to make money.
2. community problems may be valid, look into merb framework , or other alternatives. Realistically as a developer if you don’t like the decisions being made by the owners of the project, you have choices.
3. slicehost
4. bash scripts
5. yes a problem but I’ve seen worse managment systems
1. Documentation and entry point price
you don’t have to buy anything.
2. Community problems
do you mean Zed’s problems ? pff. the ruby community is so cool.
3. Hosting
same as django or another “new” webframework, BS.
4. Production deployment “trendsâ€
more bullshit. rails deploying is pretty easy. ie, cap+passenger is awesome.
5. Ruby gems
what!!?. rubygems is awesome, it’s an standard way to manage ruby software. the real problem here are the stupid distro packagers who try to ‘hack’ rubygems. the proper way to install ruby software is through rubygems. distro packagers please stay way. k-thanks.
btw, rubygems is superior to the yet archaic debian packages.
PS: I am using Ubuntu.
Gabriel, I think you can say “I do like python more than ruby” or something, but please, please stop this FUD.
the sad part is that we(the free software and linux community) are making even more FUD than microsoft these days. sad.
(1) Zed trolls and allows no comment fields. You do, so I think your opinion is much better presented than any guy who is afraid of other people commenting (he could still remove opinions he dont want to have anyway)
Zed did not restrict his remarks against RoR or the RoR community but instead unified both in his verbaly attacks. What else can you say? Not every ruby guy uses RoR. And there are still RoR people who dont really know the language ruby, so the communities are simply not the same – they may tend to overlap, but they really are DIFFERENT COMMUNITIES.
(2) I agree about the documentation aspect. It has improved – I started 5 years ago – but it needs to improve more. Period.
(3) I believe the hosting issue is some sort of chicken and egg. I bet it is harder to get python web hosts than php web hosts but the trend will surely catch up to any framework that is a success (no matter what languages)
(4) I agree about rubygems partially, but I myself do not need gems, and do not use them. However I need to say that the situation on debian sucks as well. The idiotic splitting of packages on a default basis puts stress on the user. AppDirs would be a better solution, and rubygems could contain an appdir like approach just as well (would allow easy uninstallation rm -rf gem/shoes/ etc…)
Seriously though, while I do think rubygems can be blamed, I think it is extremely unfair to tie this inherently with decisions imposed and done by distributions.
Distributions are the real plague of today’s world people. The whole deb vs. rpm vs who-cares has killed innovation. Linux becomes more and more complex with every new “iteration” in their evolution. Hal/Udev/Cmake whooooo cares. More and more complexity is added for what real benefit? I really have a hard time to see Linux breaking through when people rely on distributions this way.
So you want distributions to make your life easier? Fine, but please IF YOU USE A DISTRIBUTION ALL THE TIME, STOP COMPLAINING ABOUT RUBYGEMS! Because this is a criticism I think is highly unfair.
Debian is a like a huge jealous virus. You cant just compile software on your own into the FHS system and use packages at the same time. Things will sooner or later break. (Same is true for .rpm based FHS systems btw but I pick on debian cuz it was mentioned here.)
The developers on those distributions happily fight each other who-got-the-bigger-dong while trying to brainwash people into making them believe they solve things by adding complexity. The debian folks have made it clear long ago that they expect you to use apt/dpkg AND NOTHING ELSE.
If you still do you can expect that things break. I wonder why they still hate rubygems because after all, a good debian sheep should obey the shepherd.
As said, it is fine to critisize rubygems – as I do a lot, and remember I dont use it – but to first complain about it and then use the dpgk/apt/aptitude nightmare is really a joke.
And yes, the whole FHS/LSB “standard” is a huge joke as well.
(5) Not everyone may like RoR but when RoR helps some people then it IS a good solution.
I believe the net benefit has to be evaluated. (Same is true for other frameworks like django etc..)
If something is popular, it is going to win. And if someone does not like it, just dont use it.
Ruby as a language rocks no matter if an app like RoR is in place or not.
Sorry, I was unclear above. I meant:
“You do allow commentfields”
Now it reads as if “you troll”, which was never my intention.
Bad I cant edit my own comment field based on my IP – but I guess this explanation has to suffice.
My apologies. 🙂
It never fails to amaze me how some of the most highly-paid people on the planet can cavil about paying measly amounts for resources that will repay their cost many times over. Forty bucks for a classic book is, like, a couple of lunches. Doesn’t someone who thinks the latter is worth it but the former is not have some seriously misplaced priorities?
Good riddance. Have a good time writing python. Feel free to fill their irc and mailing lists with retarded questions.
Nice post. Thank you for the info. Keep it up.
[…] My 5 reasons to leave Ruby on Rails December 9, 2008 |Posted By Ravi Shankar | Filed Under Technical […]
this is a joke, right?
I’m glad you found PeepCode useful. Thanks for the mention.
One thing we often forget as programmers is that we should always be critiquing our tools, frameworks, and languages in an attempt to improve them. When computer science stops looking for better, faster, cleaner, more efficient ways to do development, it will stagnate.
There are many great tools out there. You should definitely keep hunting for the tools that work best for you and your applications.
entonces, ni tu blog, ni tu twitter, ni nada menciona alguna relacion tuya con ruby on rails, sin embargo te atreves a escribir las ‘5 razones por las que dejo algo-que-nunca-use’, acaso crees que somos idiotas?
La realidad es que intentaste hacer un par de cosas, salieron mal y ahora quieres atacar a la comunidad ruby solo porque eres otro tonto mas de la comunidad python que ama criticar todo lo demas.
I’ve been using ruby onrails since version 0.85 or something like that. Way back before rails 1.0 release. I’m not a rails developer or contributor if you meant that. What is YOUR relationship with rails in that case?
And yes, I do think you are an idiot. I’m not attacking any community, I’m just saying I’ll try other tools and why I’m going that way.
Have you tried Merb?
Merb Website
Totally solved my issues and problems with Ruby on Rails.
Andy,
No I haven’t. Thanks for the tip, I’ll take a look.
grabiel, por lo que escribiste en el blog se nota que lo que dices en tu comentario es mentira.
con 5 anos de experiencia no veo para que necesitarias comprar toda esa documentacion.
ademas, al finalizar escribes esto:
‘Finally, I see there’s a lot of good stuff in Rails, but for me, right now is not a good time to jump on that ship.’
TROLL.
Cool looking website, could I ask you what template you are using and how much it costs? I have been using cheap ones but cannot locate one that I actually like.
I think hosting is not my problem because actually we ca hire Ruby on Rails Development to setting for me whatever kind of hosting.