This will come out harsh, but I'm being honest: If you are not willing to fix/adapt/improve the framework you are using, you better not be using ASP.NET also (try a google search on asp.net issues), or any framework at all. In fact, developing larger more complex software might not even be possible without adapting frameworks for your specific problems.
That said, our run so far with Rails and Java (we are still using 2.3!!!):
- We have 38 patches applied to Spring
- 4 patches in apache santuario.
- One security patch on Grizzly (glassfish)
- Rails: One single pull request https://github.com/rails/arel/pull/174
I generally prefer Ruby-based things myself - this post isn't trying to sway anybody to the MS side; just wanted to give a bit of credit where it's due and perhaps a bit of news to those who haven't looked over onto that side of the fence in a long time.
Huh what? Stack Overflow with it's extreme load works quite well with ASP.NET.
>try a google search on asp.net issues
Okay, I did, what I am supposed to be looking at?
We've configured route registration a little bit specially* to speed up some common cases and we don't necessarily use every feature in the framework; but we're far from a proper fork.
ASP.NET MVC performs well enough that we get more bang from focusing on our own code basically.
*This amounts to registering our highest traffic routes _first_, and checking left-hand matches before Regex'ing (since we have a ton of "/foo/\d+/bar"-ish routes).
From what I've read on http://highscalability.com and the like, they love to tweak.
This is one of the largest lies perpetuated on this site. If you know just enough of something to follow some tutorials and crank out cookie-cutter sites using Rails/Django/Asp/Grails/CodeIgniter/etc, but fail the moment you encounter basic ecosystem problems, you aren't a polygot. You're a liability to your team for not understanding anything well enough to work around common issues. You're probably curious and love to try new things, but the implied part of being able to proficiently wield whatever tool is correct, or at least on hand, is something escaping you.
If by polygot you mean you know some syntax, the basics of the ecosystem, and generic system design, algorithms, etc while expecting to dive as deep as necessary into any given environment, you're still failing the definition. This would be the point where you RTFS so you know where to override/monkeypatch/workaround.
I see this a lot on HN too: people who've experience some level of success (as pg would say the first thing you learn when you get rich is that there are many levels of rich : ) and who hence think they know it all about everything and can constantly try to diminish others.
There's a lot of negativity here but, thankfully, there are also others who are here to share, educate and learn.
Trust me, I have been thinking about what you say every day for the past 5 days.
But thanks for the passive aggresive comment.
Sinatra, sequel and postgresql is a dream combo. I wouldn't use rails for a new project these days, I got bored of the un-navigable code a while ago. These patches and regressions are the icing on the cake.
Because your comment didn't exactly hint at it considering its completely binary assertion of "Rails or ASP"
> But thanks for the passive aggresive comment.
I'm very sorry you found it passive, that was not intended.
If you want, you're welcome to use Rails 2.3 or older and you'll encounter many fewer changes. I imagine the 3.0 branch will have much the same stability once major development moves to 4.0.
It's quite possible that someone will pick up the baton, as there still are a number of production 2.3 apps out there, and porting to 3.0+ --- more a "port" than an "upgrade" --- is a real pain. But I'm not sure anyone has stepped forward yet, and until someone does, you're taking your chances.
Also you gain a _lot_ in security by obscurity and hipster points. I don't know about stability, haven't tried this myself.
Check out the mono project for details: http://www.mono-project.com/Mono_Project_Roadmap
We haven't looked back since -- well, we have given an glance or two back since, and viewing the slow-motion car crash that is Rails today, we just feel sorry for those left behind that are discovering 'The Rails Way'.
Ironically, given DHH's comment on Rails about it being 'Omakase', I should point out that it translates as "I'll leave it to you" -- security, I'll leave it to you, software engineering, I'll leave it to you.
Food for thought indeed.
Remember -- Ruby to pose, Python for Pros.
Why?
1. Security fixes are released very quickly (good thing), but more often then not they break existing code (bad thing) - and while you _can_ wait for the next patch to fix those break points, you're left wide open since everybody can see what was broken and how to exploit it.
2. I'm not nearly smart enough with Ruby to apply 'band-aids' I read people write in Rails source code. I just don't have the time and energy to fix code in the actual framework when I need to be fixing _my_ code.
======
So there you have it; I'm bailing.
It was a fantastic ride, Ruby is a beautiful language, but Rails is just a clusterfuck (_for me_).
I need stability and predictable behavior. If that means releases every 6 month to 1 year, so be it.
So long and thanks for all the gems.