Gem Rails 应该对 Gems 实行准入许可制度 (转)

sandybeauty · 2013年01月12日 · 最后由 pzgz 回复于 2013年01月13日 · 2936 次阅读

大家怎么看? 这篇文章应该是 Posterous 公司人写的。看到了转过来看看大家的意见。 英文原文:http://sachin.posterous.com/writing-rails-code-makes-me-miss-writing-in-o 中文翻译:http://www.aqee.net/rails-needs-an-approval-process-for-gems/

写 Rails 程序的经历让我想念 Objective-C,和 C 和 Java。

当用 Rails 语言开发时,基本上一半的时间花在写自己的代码上,另一半时间花在你所使用的其他人开发的 gems 和程序包上。这些第三方提供的程序包似乎从来没有正确的工作过。很多都是 bug 多多。很多都是作者按着自己想当然的想法开发的。

不可避免的,你必须深入到这些程序包里去修改 Bug。在我们公司的 Posterous 基础代码库里到处都是讨厌的补丁,用来修改这些 gems,使它们能按照我们希望的方式工作。

gems 里有无数的小程序片段。你需要一个处理队列的程序包吗?你需要处理 url 的程序吗?到处都是这样的小程序。而且大多数已无人维护。你最好是选择使用那些一年前还有人维护的程序包。

对比在 iPhone 上的开发:我记得去年在使用 iOS SDK 时发现了一个 bug,但还没来得及反馈这个问题,它已经被修复了。我相信经常使用它的人会发现更多的 bug,但我的整个开发体验确实很舒畅的。

同样的,我们的 Posterous 使用 Java 做了大量的 email 处理操作。数年的开发 email 引擎中,我没有在这些框架中发现一个 bug。很显然这些 Java 框架非常的有历史,都很成熟。

在一天的工作中,我需要借助这些高质量的框架使我专注于我的代码和我的产品。我希望是利用那些程序包,代码库,而不是跟它们做斗争。

iPhone 的 App Store 就是专门来解决这个问题的。它过滤了那些残碎的小程序,过滤了重复,确保所有的 app 都有很高的质量。我觉得 Rails 正需要一个相似的 gem 代码库机制。

但 Rails 有什么呢?是开源软件让开发人员都懒惰了吗?还是因为 Rails 发展的太快才导致顾不上质量?但 Rails 跟其它的开源 web 框架比较起来有什么特殊的吗?

我真的不是想在这里惹大家不高兴(但我知道肯定有人想踹我)。Rails 开源社区运行的不能再好了。它使我们在开发 Posterous 时比 使用其它任何框架都要有效率。我们甚至还开源了部分我们最近开发的东西。我只是一直被一些不能好好运行的程序所苦恼。毕竟 Rails 让人感觉还不是很成 熟。

3 楼 已删除

你们是在说 linux 桌面吗?-_-!

你拿 IOS SDK 和 Java 的框架来跟 Rails 的 Gem 来比较!? 另外,很多 Gem 都是作者个人开发的,没有商业软件或大型开源软件那样的技术服务支持那是肯定的,这个也是开源软件的弊端之一。如果你嫌麻烦的话就找商业替代方案或者直接外包出去,那样多省心。

这篇文章应该是 Posterous 公司人写的。看到了转过来看看大家的意见。

#5 楼 @saiga 嗯,同意。我现在新手,感觉 gem 很好。节约了很多时间和精力。可能我做的还比较简答,所以没遇到过太多 gem 上的难题。

首先对标题吐个槽

rails 本身就是 gem,和其他 gem 是同等地位的,它凭什么对其他 gem 进行‘准入许可制度’,再换句话说选择 gem 的基本都是开发者,不是 rails,这和 rails 有什么关系?

大多数 gem 都是由个人开发提供给大家使用的。很少有收入,也不像 apache 那样有组织,有靠山。虽然这样说可能不好,但是从来没人逼你用,如果你用的觉得有问题或者不好,你可以提交 patch 去改进,如果你觉得自己没有能力改进,仅仅是提个 issue 也是有帮助的,最坏的情况你可以选择不用,自己来实现功能。

#8 楼 @kenshin54 嗯。如果有这种准入的话,估计大家都不太愿意贡献去写免费 gem 了。作为新手,能找到一个 gem 先用着也不错。

木这个必要

转载的话,贴一下原文链接吧。

#12 楼 @sandybeauty 谢谢!

看了一下,原文是 2 年多前写的。我也不赞同原文作者的观点。:)

真奇怪 他们这么这么懒 一半只有不太有名的 gem 才很容易发现 bug,这种 gem 用之前没读过源码嘛 拿来就用嘛 出了事情除了怪自己懒还能怪谁?原则上大部分 gem 还是自己编写自己维护比较好,用别人的至少也了解过它是怎么写的,是否适合于当前需求。Gem 是超级开放的工具,如果有 bug,pull request 啊,如果需求不同,fork 然后改啊,多方便的代码平台啊。比很多 Linux 软件源好用多了。

Gem 准入会使 ruby 减色不少,若真这样民间必然会出其他开放的替代方案

rails 就是這樣 不是這樣的話就不是 rails 了吧。。 而且 作為一個新手來講 看一些 gem 的代碼,甚至為了需要去修改它是一個很好的學習過程

#8 楼 @kenshin54 是哇,要有准入制度也应该是 rubygems 对 gem 的准入制度?和 rails 有什么关系啊

选择 Gem 的时候要谨慎, 如果选择了不合适的 Gem 就会后患无穷, 如果选择了合适的 Gem 就会事半功倍。 关键在于如何选择。

有名不有名都有 bug, 所谓"没发现过一个 bug"是习惯了所有的 bug 而已...

表示不同意,实施准入不如把这个选择权交回给使用者本身,源代码都是开源的,很奇怪这个作者能有这样的想法,gems 和基础库并不一样,选择的时候就得谨慎,而如果和自己的需求不相一致的时候,完全可以基于 gem 上打补丁,只要授权允许,他们可以维护自己修改过的 gems,没觉得这有什么不妥的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号