Why RubyGems Needs Loren Segal
jamesgolick.com
jamesgolick.com
But that having been said, Loren is one of the few people qualified to really speak on these issues. He's studied the internals of RubyGems, he is aware of many of the problems with the previous ways of doing things. In particular, he's a proponent for stable APIs so that breakage becomes a thing of the past. I've spoken with literally hundreds of people over the last two weeks about this issue, and I'll be the first to admit it's one that needs to be solved. The question now is not whether it must be done, but when and how the changes need to be introduced.
These are questions that I feel I must at least strongly consider the opinions of the current maintainers of RubyGems on, because for example, Eric Hodel has been the core team for 4 years and knows more about RubyGems than anyone on the planet. There is no denying that Eric+Ryan have had personal conflicts with Loren, which would make an immediate appointment of Loren on the core team unrealistic.
However, Evan Phoenix (another of RubyGems maintainers) and I are trying to see if we can find a way to solve this problem outside of RubyGems first through a compatibility gem, in a minimally invasive way to users. We have already talked with Loren some, but I hope that dialogue continues so that he can possibly help us with our ideas and build something that everyone can be happy with. This to me would be much better than the division that would be caused by a fork, and is something I think we should at least try before we make any sweeping changes in leadership.
I've promised to back off the diplomacy and start hacking to solve the problem, and that's what I'll do in the coming weeks. But I felt it was necessary to share my thoughts here simply because I've been listening to so many people about what their concerns are with RubyGems, and that makes me really want to find a solution that works. If Loren can be part of that solution, I'd love to see him working for RubyGems rather than against it, for sure.
Simply put, the quality of one's work should be judged by the quality of the outcome, not the time put in. Otherwise you end up in a situation where newcomers are never welcomed. You end up in the situation we're in now. And I've yet to come across a project that hasn't benefited by a smart, driven guy providing new insight and perspective. Marginalizing that feedback to save an ego is a major disservice to all.
Auto-pilot on a 747 is a very complex system. RubyGems is not.
What's hostile about proving points with code?
> ...the division that would be caused by a fork...
You still haven't explained what the problem with this "division" is. Why will this be different than the rails/merb fork? Honest question: are you afraid of division or of your friends losing control of the project?
> There is no denying that Eric+Ryan have had personal conflicts with Loren...
As well as just about anybody else who has tried to work with them.
> However, Evan Phoenix...
Evan is a great and brilliant guy, but let's be honest here. He's another personal friend of the current maintainers and (former?) Seattle.rb member. We need fresh blood.
SlimGems isn't Merb. It's not new, it's not doing anything better. The only thing it has going for it is "Hey, it's not being run by these same assholes." Well, that doesn't help me much. SlimGems isn't going to ship with Ruby 1.9.3, and it doesn't solve any problems that RubyGems doesn't solve. Loren could be making a better RubyGems, but instead he's making an older RubyGems.
I left a more detailed comment on your blog, but I don't think we need to have a meta-personal conflict, so I'll leave this rest here.
> If Loren can be part of that solution, I'd love to see him working for RubyGems rather than against it, for sure.
I know you're trying to be a diplomatic bridge for the RubyGems team, however saying things like that just makes me shake my head.
I appreciate James' appeal. As an outsider to the situation, I wonder why not just let Loren do his thing without comments like that? I'm also saying this with respect to Eric and Ryan's work.
Sorry if I don't reply to this comment, but I just wanted to make sure that folks here see that I've heard their thoughts and decided to act on them.
I'm nobody special, to the Ruby community, so I'm not going to claim my opinion carries a lot of weight, here. That being said, you have to see how characterizing Loren's work as a "hostile fork" isn't the most neutral thing to say.
It would appear to me that you've definitely moved past the role of mediator, but when you say things like "I must at least strongly consider the opinions of the current maintainers of RubyGems" it sounds as though you're now casting yourself in the role of judge, instead.
You're doing great things with RMU -- we thank you for it, and I'd hate to see the fallout from the role you're attempting to play here overshadow your great contributions to our community thus far.
http://blog.majesticseacreature.com/rubygems-nerd-rage-is-op...
What I said is that I'd collect the concerns of the Ruby community and present them to the maintainers and try to get changes made on their behalf. I've done that, and will keep doing that.
As for no longer being a mediator, I also already made it clear that I can't be unbiased about this, because after investigating, I've seen enough to form some strong opinions:
http://blog.majesticseacreature.com/the-rubygems-drama-conti...
In the end, I'm not worried about how this makes people who think a hostile fork is a good idea feel about me. I've received more thanks than criticism, but most of it was quiet and private, rather than loud and public. I believe in the work I'm doing, and will keep it up, but hopefully through more code and less talking.
The RubyGems matter isn't a technical one; SlimGems effectively dispelled that notion. It's a personnel matter. It's a cultural matter. The only way I'm ever going to have faith in that project again is when the guys running it value running, working software over theoretical, idealistic improvements. And I simply don't believe that will be the case until Eric & Ryan leave or are otherwise removed.
The sad part is RubyGems is so critical to the ecosystem that it really started making me question the value in using or relying on Ruby at all. The egos didn't help either. I can take a certain amount of crap if the system works and I can put up with broken software from nice, responsive people. I can't deal with both failings. In that regard, SlimGems has done more to restore my confidence in the Ruby ecosystem than anything else.
At the end of the day, people need a working environment and not everyone has the time of day to be updating every library out there that used a previously stable RubyGems API to use the new "better" ones (though I've yet to see a case where the API changes were little more than renaming a class and adding a couple class methods).
Greg, "hostile fork"? I read Loren's blog post about the release of SlimGems and the motivations, and really got no sense at all of any hostilty.
As best I can tell, much like with YARD Loren decided he wanted to see some key part of the Ruby dev environment behave a certain way and wrote working code to make it so. I can only applaud that.
Having spent at least a little time chatting with Loren about YARD (he was terrific in clearing up dozens of questions at a MWRC) I'd be surprised if there was any anger or malice behind any of his projects.
It may be that the offering of these things in turn creates some annoyance for some people, but I doubt that's the intent.
I would much prefer to see more people code out their issues than complain on a mailing list or HN.
Code talks, bullshit walks.
The Ruby community seems to have a lot of people with time on their hands (and strong opinions), but it seems that these people with time on their hands just rewrite the same shit over and over and over again. Move forwards, not sideways...
The rubgems maintainers are in a position to practically destroy Ruby's usefulness overnight by making frequent changes and deprecations, causing every installation to become a debugging nightmare and destroying millions of man-hours. To be sure, the emotional drama is boring, but the stakes are real.
http://blog.majesticseacreature.com/summary-of-rubygems-18-b...
Full disclosure: Loren and I have collaborated on projects before. We co-authored the current version of rubydoc.info, the online doc host for Ruby gem and Github projects. So yes, I'm biased, but I've also seen the quality of his work first-hand.