<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Why I hate Rubygems</title>
	<atom:link href="http://hcoder.org/2008/11/23/why-i-hate-rubygems/feed/" rel="self" type="application/rss+xml" />
	<link>http://hcoder.org/2008/11/23/why-i-hate-rubygems/</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Thu, 29 Jul 2010 02:46:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Sverre Johansen</title>
		<link>http://hcoder.org/2008/11/23/why-i-hate-rubygems/comment-page-1/#comment-191</link>
		<dc:creator>Sverre Johansen</dc:creator>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<guid isPermaLink="false"></guid>
		<description>I like to have a separate development environment, and install the language specific packages within this virtual environment, separate from the rest of the system.

For my current Python projects I do this with either Virtualenv or zc.buildout. Then I get the latest and greatest from the community, and at the same time I don&#039;t interfere with the rest of the system.

Another alternative is to create platform specific packages for each of the dependency, but that is extra work that I would love being without. This also ties the project to one specific OS, which might be OK for internal software, but you will have to do all the packaging again for another OS.

My current project uses the same packages for Gentoo, Debian, Ubuntu, OSX and Windows.</description>
		<content:encoded><![CDATA[<p>I like to have a separate development environment, and install the language specific packages within this virtual environment, separate from the rest of the system.</p>
<p>For my current Python projects I do this with either Virtualenv or zc.buildout. Then I get the latest and greatest from the community, and at the same time I don&#8217;t interfere with the rest of the system.</p>
<p>Another alternative is to create platform specific packages for each of the dependency, but that is extra work that I would love being without. This also ties the project to one specific OS, which might be OK for internal software, but you will have to do all the packaging again for another OS.</p>
<p>My current project uses the same packages for Gentoo, Debian, Ubuntu, OSX and Windows.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Esteban</title>
		<link>http://hcoder.org/2008/11/23/why-i-hate-rubygems/comment-page-1/#comment-192</link>
		<dc:creator>Esteban</dc:creator>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<guid isPermaLink="false"></guid>
		<description>Well, for me separate environments are chroots or some other virtual machine, were you can install whatever collection of packages you want. After all, your environment is not only the modules for a certain language, but the whole system. Of course it&#039;s somewhat harder to setup or maintain, but if you want a real separate environment, I think that&#039;s the way to go.

Having the latest and greatest, although regarded as obviously good by every measure by the Python and Ruby communities (apparently), I think is not necessarily that good, at least when the updates are &quot;not controlled&quot;, and you don&#039;t have an easy/default way to stick to certain known-to-work versions. What I mean is that installing directly using gems or easy_install (or CPAN for that matter) gives you, by default, the latest version of every package that is installed. And the problem I see is that the &quot;latest version&quot; is something that changes over time, so there&#039;s no easy way to be sure that you&#039;re using the same versions in all your servers (unless you upgrade all servers every day, but that&#039;s nuts). And by &quot;all&quot; here I don&#039;t mean just the production servers, I mean the whole chain.

Of course, if you&#039;re writing some software that you have to deploy in multiple systems, probably the only sane way to achieve it is using Rubygems/easy_install/CPAN or similar, as you point out. But that&#039;s not my case or the case I&#039;m the most interested in, and for &quot;generic&quot; software (as in Open Source and such) I think the best solution is separating the roles of &quot;upstream&quot; and packagers and allowing each system community to maintain packages of your software, tailored and adapted to their system.</description>
		<content:encoded><![CDATA[<p>Well, for me separate environments are chroots or some other virtual machine, were you can install whatever collection of packages you want. After all, your environment is not only the modules for a certain language, but the whole system. Of course it&#8217;s somewhat harder to setup or maintain, but if you want a real separate environment, I think that&#8217;s the way to go.</p>
<p>Having the latest and greatest, although regarded as obviously good by every measure by the Python and Ruby communities (apparently), I think is not necessarily that good, at least when the updates are &#8220;not controlled&#8221;, and you don&#8217;t have an easy/default way to stick to certain known-to-work versions. What I mean is that installing directly using gems or easy_install (or CPAN for that matter) gives you, by default, the latest version of every package that is installed. And the problem I see is that the &#8220;latest version&#8221; is something that changes over time, so there&#8217;s no easy way to be sure that you&#8217;re using the same versions in all your servers (unless you upgrade all servers every day, but that&#8217;s nuts). And by &#8220;all&#8221; here I don&#8217;t mean just the production servers, I mean the whole chain.</p>
<p>Of course, if you&#8217;re writing some software that you have to deploy in multiple systems, probably the only sane way to achieve it is using Rubygems/easy_install/CPAN or similar, as you point out. But that&#8217;s not my case or the case I&#8217;m the most interested in, and for &#8220;generic&#8221; software (as in Open Source and such) I think the best solution is separating the roles of &#8220;upstream&#8221; and packagers and allowing each system community to maintain packages of your software, tailored and adapted to their system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Esteban</title>
		<link>http://hcoder.org/2008/11/23/why-i-hate-rubygems/comment-page-1/#comment-193</link>
		<dc:creator>Esteban</dc:creator>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<guid isPermaLink="false"></guid>
		<description>Oh, and BTW. I think the main reason why I feel Rubygems suck is because they&#039;re *hard* to repackage. I don&#039;t mind so much that people *use* Rubygems themselves, but I hate that people are distributing their software using a hard-to-repackage format instead of using something like, for example, CPAN.</description>
		<content:encoded><![CDATA[<p>Oh, and BTW. I think the main reason why I feel Rubygems suck is because they&#8217;re *hard* to repackage. I don&#8217;t mind so much that people *use* Rubygems themselves, but I hate that people are distributing their software using a hard-to-repackage format instead of using something like, for example, CPAN.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
