I think the biggest thing that made Rails fall from grace (to whatever degree it has) was the way it ground to a halt for what seemed like ages while they worked on Rails 3, and then when 3.0 came out, a lot of people found it unimpressive on its own merits, and even more so when viewed in light of how long it took. (This is largely because a big part of the Rails 3 work was refactoring and trying to make it less monolithic, which are good things, but the kind of good things that get you yelled at by people who don't care about them.)
> And even now, in 2013, when I have to set up a new server with Rails, even with Nginx and Unicorn and all the other systems to help me, I find Rails annoying to set up, especially compared to the simplicity of PHP running on Apache or a Clojure app bundled up with something like "lein uberjar".
Then don't pick Unicorn. Yes, Unicorn is a fantastic app server, but it requires that you know the app server very well, and as with all stand-alone app servers, the configuration is more complex.
Instead, pick something like Passenger. Passenger runs as an Apache module and is just as easy to get running as PHP.
We deployed a new server last night.
`cap staging deploy:setup` `cap staging deploy` `cap staging deploy:migrate`
You do have to know how to setup Unicorn but…
Deploying an application can be done with 1-3 commands in any language, since it has little to do with the language itself. All you need is a build or deployment script, which can be written in Bash or whatever.
If we're talking about shared hosting, that's a whole different ball game.
Admittedly, Rails had a major role in Ruby's ascension into the programming glory; however, in the course of this, it overshadowed the language itself. It created a bubble within the community.
But the real tragedy is that by virtue of Rails being most visible and vocal, the whole Ruby community is appraised and influenced by their actions and rhetoric.
That's simply not true and not fair. Rails of v1-v2 era were much worse than what we have now. Tooling improved immensely since the rant (bundler, rvm) and the most popular ruby implementation itself improved. Granted, it's somewhat harder to start rails today than it was four years before, still we are much better off.
http://harmful.cat-v.org/software/ruby/
But there was a stretch from around 2005 to maybe 2008 where Rails seemed to defy criticism. It grew and grew, despite the criticism. I tried it for a project in 2006 and I became a fan. The easy use of 3rd party code, via gems, was much easier than anything I had known in Java or PHP.
I do not know a way to say when some of the criticism began to stick, but clearly things have changed. I have my own personal experience: once a fan of Ruby and now a fan of Clojure. And others have moved on -- there was recently the conversation about multi-threaded Ruby apps, and it seemed to me all the smart people agreed that jRuby is the future of Ruby: http://tonyarcieri.com/2012-the-year-rubyists-learned-to-sto...
If I had to pick one moment when some of the criticism against Rails began to take hold, even among those who had once favored Rails, it was Zed Shaw's insane rant:
http://harmful.cat-v.org/software/ruby/rails/is-a-ghetto
Even though the tone is insane, he made some points that stuck in people's heads, including mine. This was important to note:
"I believe, if I could point at one thing it’s the following statement on 2007-01-20 to me by David H. creator of Rails:
(15:11:12) DHH: before fastthread we had ~400 restarts/day
(15:11:22) DHH: now we have perhaps 10
(15:11:29) Zed S.: oh nice
(15:11:33) Zed S.: and that's still fastcgi right?
Notice how it took me a few seconds to reply. This one single statement basically means that we all got duped. The main Rails application that DHH created required restarting ~400 times/day. That’s a production application that can’t stay up for more than 4 minutes on average."
And even now, in 2013, when I have to set up a new server with Rails, even with Nginx and Unicorn and all the other systems to help me, I find Rails annoying to set up, especially compared to the simplicity of PHP running on Apache or a Clojure app bundled up with something like "lein uberjar".