Rails users: would you use rails again?
I've been building web apps ontop of rails for the past year and a half. Now I need to decide if I want to stick with rails for my startup.
I like that it is quick to try things out. I don't like the various execution models or scaling issues. I've spent as much or more time tweaking configurations and de-railsifying certain pieces for performace as I have developing the app. I've also used Ruby to replace perl and python for utility scripts, and haven't been impressed with its performance.
For those of you in a similar position, would you choose to use rails again?
19 comments
[ 3.1 ms ] story [ 36.3 ms ] threadAlso, what would you recommend instead?
just like with _any_ other language, if you are not careful you can end up writing some sloppy RoR code.
especially once you get into the 50-100+ migrations apps - your first few might suck unless you have some good guidance on how to do the more advanced things.
as a corollary - I just joined a RoR startup and by the end of my first day I had already closed out 2-3 feature/bug tickets, mostly because the code was clean & well-structured. in some heavier environments I remember it taking a few days just to get your system setup & figuring out how to navigate / compile / etc. all the code.
If you're looking for performance, ruby is not the place to look. Ruby/Rails is for faster development with good organization, with much less chance of having sphagetti code (like PHP) which results in easier maintenance and evolution.
As far as scaling, no problems so far (but this is a relatively small app). To me, as long as a certain response time is met, it's not nearly as important as being agile and organized.
All the frameworks have trade offs. But to me, Rails seems like a good place to be not only because of its technical merits, but also because its strong and innovative community...which is constantly improving the framework (as well as Ruby itself).
So I will be learning more about those issues in about a month or so when we launch.
Furthermore, there isn't much of "Rails" you have to deal with. What is Rails? Templates? They're more or less the same everywhere. DB access? Databases are dying anyway... What's left? URL mapper? Rails, ASP.NET, Django.. they are all the same to me.
2nd thing I had in mind was recent trend to use as little as possible of raw SQL, using language-native constructs instead.
I'm a recovering video game programmer who picked up Ruby ages ago as a Perl replacement. But coming from that background, it pained me to see Rails pages that took a third of a second, a half a second or even (gasp) longer to render, but you know, the problems are tractable. You don't have to create sophisticated data structures to address performance problems, for example. And Rails scalability is pretty well-understood and although it's complex, it gets easier all the time.
For my startup we've chosen Pylons and we're happy so far. It's definitely not as polished as Rails but it gives us a lot more flexibility. We're using SQLAlchemy as well and there's no better way to talk to a database.
Note that I've only used Rails to make a couple quick, simple apps that are primarily used to create, edit nad display lists. When I had the opportunity to use it for something more complicated, I went with CL/TBNL/CL-WHO/CLSQL and never looked back.