为什么“需要rubygems”是“错误的”?

根据这篇文章 ,要求rubygems是一个反模式。

require 'rubygems' 

这个论点似乎归结为:

当我使用你的库,部署你的应用程序,或运行你的测试我可能不想使用rubygems。 当您在代码中需要“rubygems”时,您将无法做出决定。 我不能不要求rubygems,但你不能首先要求它。

但是,当您与其他人一起创建和共享代码库时,您所要求的任何Ruby库都无法进行相同的论证吗?

需要rubygems的主要问题是它会在没有安装rubygems的系统上导致错误,即使它们确实有你真正想要的库。

有些人在需要rubygems时通过拯救LoadError来解决这个问题,但这有点难看。

如果你看一下评论,你会看到作者这样说

我不想做的一点是,rubygems很糟糕,或者人们不应该使用它。 我使用rubygems并认为它是Ruby成功的关键部分 – 我在我的库源代码中的任何地方都没有“require’rubygems’”,因为它没有必要或方便,并且使得其他环境很难/不可能(如bundler,rip,GAE,debian,hand rolled等)使用没有rubygems的库,这通常很重要。

在我阅读它之前,我实际上并不是真的同意他,现在我做到了

Rubygems对于应用程序来说并不重要,它只是提供库的便捷方式。 相比之下,使用的其他库对应用程序至关重要。