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讀者交流群(#2)
)。
來自: http://www.infoq.com/cn/news/2016/01/GS-Collections-Eclipse-Foundn