GS Collections迁移到了 Eclipse基金会

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读者交流群\"InfoQ好读者\"(已满),InfoQ读者交流群(#2)\"InfoQ好读者\")。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值