a couple of weeks ago i decided to give ruby on rails another chance. http://beans.sainttoad.com is the result of that.
at the time, i was seriously impressed at how easy it was to get my app up and running. in one week of part-timing it, i went from 0 experience with rails/ruby to a full, non-trivial deployment (reverse proxy, url-rewriting, url-prefixed deployment, har). at the end of the week i'd whipped up 90% of the features i wanted in my app, a decent (or at least consistent) style, and am now happily using the app with no problems.
except one problem: when i go back to polish off those remaining 10%, i'm left wondering: wtf am i doing this in ruby? i mean, really?
the problem with ruby on rails: ruby. i've been told that ruby makes much more sense if you're japanese. well shucks, i'm not japanese. is that why i think that "" == 0 == [] == true is a stupid idea?
rails makes it incredibly simple to get a useful app up and running with breathtaking speed. but then, in the real world (and not in the world of my tiny-dataset app), you'd go back and refactor and optimize your database access and so forth. that looks to be a pain in rails, where the ORM makes it difficult to do things well. or, perhaps the problem is that the ORM documentation makes it difficult to make the ORM do things well. that's a difference without a distinction.
at work, i use pylons. it's got a lot of the sugar of rails, but it's got a different philosophy: too much magic is bad. rails is all about the magic. in pylons, there's much less magic, and when i need to fix something, because i'm not relying on magic, i know how to fix it. rails? not so much (although i did find and fix a bug in the auth package: but to merge it back? i have to learn git? no thanks).
anyhow: i'm not making any sense. here i am saying rails is great and ruby sucks, then telling you why rails sucks. i've had minor exposure to each and this is the end result:
ruby: i get it, it's like python, only there's the bizarre 0 == true thing, and the block thing which is kinda cool but really a very complicated route to doing simple things, and less emphasis on functional programming, and not enough haskell influence (:D).
rails: super easy to get working. encourages some pretty bad design choices and also encourages beginners to think they know what they're doing, which leads to pretty bad design choices. this is a tough problem for framework designers to address, and i can't say i blame rails for making the choice they made. after two weeks of not using rails, when i went back to look at it, i wondered: wait, why am i using rails? maintenance is maybe not so enjoyable as the thrill of getting the app whipped up. and since maintenance is what app development is all about, maybe i picked a poor framework.