is ruby on rails ready for the enterprise?

Is anyone out there using RoR for large scale, business critical enterprise applications?

Are there any other lightweight web-frameworks based on dynamic languages that people are using for these types of apps?

If you're not using these types of application frameworks what's stopping you? Is it simply the inertia associated with any large IT organization. Are the speed and stability issues of these frameworks enough of a problem that they offset the improvements in development cycle times?

In order to consider whether Ruby on Rails is ready for the enterprise, you have to think about what the term "enterprise" means. In my experience, enterprise means "safe". Companies that are looking for an enterprise solution typically choose a technology stack that's supported by large vendors. This way they know that they can get support and probably consultancy in exchange for spending large amounts of money. It's the whole "nobody ever got fired for buying IBM" approach.

Another factor to consider is ubiquity. There's no doubt that right now Ruby is still seen as a somewhat exotic language and the availability of skilled Ruby programmers reflects this. Technically, Ruby is more sophisticated than Java or C#, being closer to Smalltalk in terms of OO purity and closer to LISP in terms of meta-programming facilities. Suffice to say, companies are going to find it easier to get Java or .NET programmers for a low rate from body shops, than they are Ruby programmers. That's not to insult Java or .NET programmers, rather it's a reflection of the fact that there are many employers who still regard software development as something to be done by the cheapest bidder, rather than something that should be done right. Java and .NET programmers are pretty much a commodity now, so can be offered for less cost.

Technically, Ruby on Rails can scale just as well as Java, .NET or PHP etc. The same basic principles apply of measuring where the bottlenecks are, tuning your SQL queries, minimizing I/O, possibly denormalizing the database schema if appropriate and making judicious use of caching etc. If you do need to build the next eBay or Amazon then you should hand-roll and hand tune your own solution, just as eBay and Amazon have done. J2EE has the edge on legacy integration, but that's not the use-case that Rails is optimized for anyway—Rails is all about building new CRUD apps.

There's no doubt that as it currently stands Ruby is one of the slower performing languages; a lot of investment is being made in this area, so expect the situation to improve over the next few years just as it has done for Java since it first came out. There are lots of interesting developments taking place in the field of Ruby VMs and alternatives to the MRI (Matz Ruby Interpreter). Personally I think that JRuby is one to keep an eye on. It's backed by Sun (go figure) and because it's a Java implementation of Ruby, it's a neat Trojan horse you can use to get Ruby into your enterprise, via its existing JVM infrastructure.

I don't think Rails is quite there for the enterprise yet and in many ways I hope it never is. I don't particularly want to see my favourite framework get bogged down by some of the mediocrity or confusion of multi-vendor choice that has been evident to me in the J2EE world. Happily DHH seems determined that Rails should continue to be opinionated software for scratching his own itch, rather than trying to be all things to all companies.