Rails users: would you use rails again?

9 points by menloparkbum ↗ HN
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 ] thread
In all honesty, for a quick and easy app, sure I would. For anything more complex where performance or scaling is required without hassle, I'd use something else. This is after I've made my first couple of apps in rails.
No way.
Any war stories? I mean, with due respect to veterans and causalities, of course...

Also, what would you recommend instead?

ok - here's one.

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.

In my case I would. None of the apps I have in my mind are super complicated (relative to other apps that is - though even simple apps have the devil in the details).

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.

That's been my experience as well. I prefer Rails over most Java frameworks as well due to all the sugar that comes with a fully integrated webdev stack.

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, to answer the initial question: yes, I'd use Rails again for a webapp as long as I wasn't planning on building something like Second Life.
Currently using rails and like it a lot. I have done some really small sites in rails, but haven't had to deal with scaling or performance yet really.

So I will be learning more about those issues in about a month or so when we launch.

Sure I will - Ruby is a wonderful language that I simply adore. I suspect that over time I will slowly migrate to my own replacements for various Rails parts.

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.

Databases are dying? What will they be replaced with?
Punch-cards..or flat/XML-files loaded into memory.
What I meant by that is the fact that more and more people realize that SQL back-end is not always what they want, I built an RSS search engine without one, for example.

2nd thing I had in mind was recent trend to use as little as possible of raw SQL, using language-native constructs instead.

"Syntactic sugar causes cancer of the semicolon." -Alan Perlis
"I don't like the various execution models or scaling issues." Can you be a bit more specific? I'm pretty much hooked on rails but if you know python already, checking out django couldn't hurt.
Hell yes and a half. I love it and people keep doing my work for me (i.e. releasing plugins).

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.

Yes I would. Probably any smallish consulting gigs I do will be in Rails now, as will any sort of internal quick admin-type app we do for our startup. Rails + ActiveScaffold gets you going very quickly for your standard LOB/CRUD app.

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.

Nope. It is a nice package, but there's too many good frameworks in Python that can give me similar productivity without the performance hit.
For a quick, simple app that's primarily used to create, edit and display lists, sure. There are a lot of apps that fit that model. For something more complicated, probably not. I'd certainly consider Ruby, but Rails seems like it would be more of a burden than a help.

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.

Nitro or Ramaze, as the APIs settle down and the docs beef up.