GS Collections迁移到了 Eclipse基金会

jopen 4年前

Eclipse基金会和 Goldman Sachs已经宣布联合经营,将流行的 GS Collections开源框架开发迁移到 Eclipse。该迁移预期早在2015年12月下旬完成,当时在 Maven Central出现了前者 com.gs.collections 的克隆,拥有一个重新命名的称呼 org.eclipse.collections eclipse-collections-api

InfoQ就两者之间的新关系采访了 GS Collections创作者 Donald Raab。

InfoQ:做出这一迁移的原因是什么?

Raab :过去四年我们已经看到 GS Collections的应用得到了稳定的增长。自从在 GitHub上发布 GS Collections后我们已经被多次问到是否接受外部对此框架的贡献。在这之前,答案都是“不接受”。随着 Eclipse Collections的到来,现在这个问题得到了一个确切的答案,“接受”。如果开发人员想贡献 Eclipse Collections,对此我们有一个 良好定义的流程 。就在 JavaOne 2015会议前,我们在我们的 gs.com/engineering 网站上宣布了向 Eclipse基金会的迁移。通过与 Eclipse基金会的合作,我们希望围绕 Eclipse Collections项目发展一个充满活力、开放的贡献者和提交者社区。为帮助我们实现这一目标,Eclipse基金会提供了一套成熟的流程和工具。

InfoQ:你能给我们说说这次迁移的进展吗?

Raab :Goldman Sachs作为解决方案成员加入 Eclipse基金会,我们在2015年10月提交了 Eclipse Collections的 项目建议 。我们在2015年12月完成了 GS Collections向 Eclipse基金会的迁移,并更名为 Eclipse Collections 。我们将包从 com.gs.collections更名为 org.eclipse.collections,但是保留了版本号,因此 GS Collections 7.0迁移成为 Eclipse Collections 7.0。

InfoQ:它们完全一样吗?

Raab :是的,GS Collections 7.0和 Eclipse Collections 7.0之间的特性完全一样。

InfoQ:跟我们谈谈集合,什么使得 Eclipse Collections不同于其它流行的集合框架,比如 java.util Collections、Google Guava或者 Apache Commons Collections?

Raab :Eclipse Collections具有其他每个框架一样的共同特性,同时,也有它独一无二的特性。适用范围和完整性是 Eclipse Collection独特的地方。

受 Smalltalk Collections 协议的启发,Eclipse Collections提供了丰富的功能 API。在我们的父接口 RichIterable有超过100种可用的方法,大部分都是我们的类型扩展。

Eclipse Collections提供标准 JDK Collections类的优化替代,比如 ArrayList、HashSet和 HashMap。除了丰富的功能 API,我们还希望为这些类提供更高内存使用率和更高性能的版本。我们也希望提供内存使用率不可变的集合和原生集合(primitive collections)。

Eclipse Collections 7.0支持 Java 5及以上版本,因此你现在就可以使用 Eclipse Collections,并且,升级到 Java 8就可以在当前的 Java IDE中使用自动重构了。

InfoQ:最引人注目的集合和特性有哪些,你给大家举一些例子吧?

  • 我们对 Map、Set、Bag(一种无序列表)和 Multimaps有更高内存使用率的实现。
  • 直接在集合使用贪婪迭代模式的丰富的 API。(无“小面包式”的操作,因为一块肉总需要两片面包来夹,所以我们这么来叫它)
  • 具有丰富的API的原生集合。
  • 优化的并行的惰性和贪婪 API。
  • 具有约定了不可变接口的不可变集合(无可变方法)。
  • 适用于所有容器类型的简洁一致的工厂。
  • 可多次使用的惰性迭代器。
  • 我们 kata 风格的教程,通过不断重复的实践帮助磨练我们的技能。

因为我们实现的是 java.util的Collection接口,因此可以自由获取 Streams。Eclipse Collections欢迎任何社区来做出贡献。

InfoQ: GSC是何时开始的?

Raab :在2004年,GS Collections作为一种框架于 Goldman Sachs内部开始开发,名字叫做 Caramel。

InfoQ:何时对外开放的?

Raab :GS Collections于2012年1月在 GitHub上发布。GS Collections于2015年12月在 GitHub上发布。

InfoQ:有多少 GS开发人员为此框架做出了贡献?

Raab :这么多年大约有40名 Goldman Sachs开发人员对 Caramel做出了贡献。

InfoQ:这种合作对 GS Collections未来的方向有何影响?

Raab :GS Collections 7.0版本是 GS Collections最新的特性版本,在 Apache 2.0协议下,Goldman Sachs GitHub账户和 Maven Central的 GS Collections仍然可用,但是只会修复些 bug了。未来所有的特性开发和版本都将放在 GihHub上的 Eclipse基金会的 Eclipse Collections 上。如今我们已经成功迁移到了 Eclipse基金会,所有的开发工作都将在 GitHub上开放地完成,Eclipse Collections 之后版本的 规划路线图 也将向大家保持透明。在 Eclipse Collections 8.0版本中,我们将开始直接在类库中利用 Java 8的特性。Eclipse Collections 7.x的版本将是最后支持 Java 5-7的版本。

InfoQ:你能分享一些使用现状吗?

Raab :它在 Goldman Sachs的使用非常频繁。在公司我们有三到四千名 Java开发人员。随着2015年12月底 7.0版本在 Maven Central 的发布,GS团队已经开始升级到 Eclipse Collections了。

在公司之外,很难度量使用量,但是在 GS Collections GitHub库中,目前我们已经收到1430多个赞了,并且在 Maven Central上每月有20K的下载量。

查看英文原文: GS Collections Moves to Eclipse foundation

感谢夏雪对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 GS Collections迁移到了 Eclipse基金会 (已满),InfoQ读者交流群(#2) GS Collections迁移到了 Eclipse基金会 )。

</div>

来自: http://www.infoq.com/cn/news/2016/01/GS-Collections-Eclipse-Foundn