>> >> Keys to this: they have to be able to work adequately as separate >> components, and very well together. They should all use only freely >> available components. Last of all, and this is just something >> that bothers >> me: they shouldn't just be copies of the way Language X does >> something, with the assumption that you have used Language X and would >> rather read the >> documentation to original Language X implementation. > > I heartily second this last point. I get concerned when I read posts > advocating Ruby applications designed to follow a spec designed with > another language in mind. Compatibility/interoperability are > interesting goals in a general sense, but carry certain risks. > > There was a lengthy thread on ruby-talk concerning Ruby, XML, and W3C > specs. By and large, while many people felt adherence to specs made > certain tasks easier to understand, those specs were not written with > Ruby in mind, and blind adherence would mean foregoing much of Ruby's > elegance. The particular case was the W3C XML DOM. It's a "standard" in > the general W3C-spec sort of way, and many people are familiar with it, > but the API just falls flat compared to how one can manipulate XML using > a Ruby Way API (see REXML). > > So, specs like EJB or J2EE or Ant may be the best thing since sliced > bread for the Java crowd, but they don't reflect a Ruby Way of doing > certain things. We should steal the better ideas and then build things > that play best with Ruby. > > James I agree with all this, too. There must be some good ideas we can steal from EJB, but I would definitely not want to see a large resemblance. In the related thread (Distributed Object Containers) when I mentioned that I hope in N years that Perl, Ruby, Java, etc. are interoperable to a large degree, I did have in mind that Ruby could then leverage EJB or whatever (others have mentioned Swing, I would add CPAN). However, these are general goals, and I do believe that a Ruby way can (most likely will) evolve to handle application-server-related tasks. But it won't happen overnight; it's a big task. Gavin