The response to my earlier post about my experience with a (admittedly, small) Java to Rails port has got me thinking. There's a lot of folks, here, on /., and elsewhere, who dismiss Rails out of hand as not being "Enterprise Ready". And, as much as I want to argue with them, I kind of have to agree. Even though I can't really define "Enterprise Ready", or what "Enterprise Software" is, I can say that there are classes of web-enabled applications that you simply can't solve with Rails right now.
Which begs the question: enough FUD, what is it really missing? I've heard that internationalization is a big one for lack of Unicode support, though that argument doesn't really hold water anymore with Ruby's support for Unicode and the new article on using GetText for translation. And I know the "its interpreted, not compiled or managed" argument, which has merit and for which there is no current answer. But I'm interested in features: what is Rails really missing that would allow it to grow into the next tier of application development?
The things that come to mind are:
- Distributed Transaction support: as much as this is the bane of our existence, it is absolutely necessary in some environments to support distributed transactions. The how to on using multiple databases doesn't even address this as an issue; it is primarily concerned with db routing and failover support as opposed to multi-db transactions.
- A Security Manager: something akin to the Java Security Manager and java.security.policy.
- A second-level cache: something to provide an alternative to all-lazy-all-the-time loading.
What else? Other ideas?