From: "S. Robert James" Date: 2007-03-29T10:15:09+09:00 Subject: Re: On Enterprise Ruby Wow, some excellent discussion has been generated. I'd like to clarify a few things, from my point of view: 1. I use Ruby extensively. I use Rails extensively. I'm using them currently for a large health care project. I've also used them previously in other projects. I think they're great. 2. The problems I've raised are problems that I've encountered, in my personal experience, with Ruby, and with Rails. I'm pained by the attitude that "Ruby (+-Rails) is perfect, and pointing out any advantages of other platforms is heresy, subject to excommunication". We need to be able to see our weaknesses in order to grow. Isolation brings stagnation. 3. Library maturity. Some suggested that we could solve the maturity problem by raising the version numbers. I think that suggestion expresses the problem that I'm raising better than I ever could. 3. Clever code: Please read what I wrote. Dynamic typing is wonderful. Open classes can be used for good or evil. But clever code is always bad. What's the difference? If you use the power of the language to better convey the inherent patterns, that is good. But, if you violate expectations, possibly saving a line or two, but obscuring what's happening underneath, that is bad. Some examples of the latter are abusive method_missing use, and gratutitous runtime redefinition of classes. 4. Databases. I got two responses here. * Some saying "yes, referential intergrity is indeed worthless". I doubt anyone saying this ever worked on a database that a) stores millions of records b) must last many years or c) has very little tolerance for failure. Believe me, eBay has developed their own database layer in Java, to handle massive scalability and parallelization. That's not the same thing as just haphazardly throwing things into a "dumb, persistent hash". * and some saying "no one ever said that". To this, I not only offer the posts cited by others, but the responses to this thread itself. I will point out that there's been a lot of community wide improvement here - a lot of ignorance has been overcome. DHH has certainly come around on this, and it's to his credit. Solutions? Well, the cultural issues are the most dangerous - esp. the clever code issue. But, as an individual, you're not forced here. I'd really, really, really like to see a decent soap4r - I'd even be willing to sponsor. Ruby prides itself - rightfully so - on how "there is no step 3". Here's one issue we're the opposite is true. Consuming a Web Service with a complex WSDL is child's play in .NET, but takes a lot of work to get right using soap4r. (Sometimes, I just give up, and capture the XML off the wire, and template it!). Perhaps JRuby will address these and library issues, but I think JRuby is targeted more towards using Ruby to talk to Java, not enhancing Ruby in its own right. Perhaps over time, as more people adopt Ruby, all of these issues will be addressed more...