From: Trans Date: 2005-11-20T03:57:22+09:00 Subject: An alternative to Gems As I've mentioned before, I am concerned about Ruby becoming tied to RubyGems. I am concerned because I think Gems overly complicates Ruby's require mechanism, making it less efficient than it needs to be and sometimes causing unexpected load behaviors. Even more worrisome to me though is that Gems ties require versioning (and some of it's other benefits) to *package distribution*. B/c of this I fear Gems will become the ONLY acceptable way to distribute Ruby software --indeed, it already seems to be doing so. Maybe some people want that, but I fear it locks Ruby in too much, and stiffles any future innovation in the distribution area. For these reasons I'm inquiring into the support that may exist for doing things a little differently. I believe it would be better if Ruby itself simply elaborated on its #require method (and #load method of course) to handle versioned directory tiers. Then simply by adding a version tier to a project's lib/ path versioning would be supported -- independent of any distribution mechinism. To be clear, what I mean is instead of this: myproject/ lib/ myproject/ myfile.rb One would put: myproject/ lib/ myproject/ 1.0.0/ myfile.rb So even setup.rb can be used just as it always has and versioning would be supported. I want to make clear that I am not wishing away Gems in this, I like Gems and think is makes a great package manager for Ruby. I simply think the versioning should not be dependent on Gems. And Gems could be adapted to work with the above system too. So I'd like to know if others would be in support of this approach as I have already written a system to do exactly this. The system deals with all the details that arise doding this and adds some additional benefits, but the above is heart of the matter. The system is nearly ready for release. I am down to completing thread safety and solidifying the exact require interface that will support it. So what do you think? Anything you'd like me to clarify? Is there support out there for pursuing this approach? Thanks, T.