GS Collections遷移到了 Eclipse基金會

jopen 8年前發布 | 21K 次閱讀 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讀者交流群 GS Collections遷移到了 Eclipse基金會 (已滿),InfoQ讀者交流群(#2) GS Collections遷移到了 Eclipse基金會 )。

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!