Scala IDE支持現狀報告:三大巨頭面面相覷
譯文【51CTO精選譯文】在上個周三,BASE 小組(51CTO編者注:BASE=Bay Area Scala Enthusiasts,Scala狂熱者海灣之意)舉行了一場有關 Scala IDE 支持現狀的會議。嚴格來講,有“三大巨頭”:Eclipse、NetBeans 和 IntelliJ。Dick Wall 組織了這次會議,我擔任會議記錄,下面就是這次會議的內容:
51CTO編輯推薦:Scala編程語言專題
首先,我覺得這次會議的結果非常好。這次會議在位于舊金山的 Twitter 的辦公室舉行。我估計這次會議出席人數僅次于六月份那次會議(那次 Martin 做了有關 Scala 未來的演講)。Scala 社區(qū)對于這一主題非常感興趣。
Scala + Eclipse?發(fā)言人=Michael
我第一個上臺,他們要我講講 Eclipse 插件。我現場寫了一個簡單的程序,以此來演示插件的長處和弱點。開始,我演示了如何安裝插件。很奇怪,有些人還不滿意,我不得從一個更新網站轉到 Eclipse 網站完成下載安裝,因為 Eclipse 的一個更新網站不提供插件下載。首先是一些壞消息。創(chuàng)建了一個新的 Scala 應用程序后編輯器卻無法打開。語法高亮顯示最初不能正常工作,開始很多行顯示存在錯誤,然后又變成正常。重啟 Eclipse 或打開/關閉項目的操作,會碰到很多問題。一些好消息……代碼完整性通常很不錯,包括閉包(closure)中的通配符。作為 Scala 應用程序運行開始簡便。調試也不錯,包括對閉包的調試。不過,在修改代碼之后,中止點沒有了。另外,如果你引入一個錯誤并重新運行了程序,從上次完好的創(chuàng)建(build)運行,它能夠成功。使用 JUnit 問題最多。必須對路徑進行配置,以屬于 bin 目錄。JUnit 運行器會顯示它無法找到任何測試。不過,在清除創(chuàng)建和重啟之后,它就可以運行測試了。如何代碼修改都會再次要求清除創(chuàng)建和重啟。
聽眾普遍的觀點是他們沒有耐心去使用這個插件。后來,很多人告訴我,他們試用過這個插件,但在解決我上面所說的那些問題之前,他們就放棄了。有一個人感到很遺憾,他們公司已經準備好轉向 Scala 了,但在 Eclipse 插件能夠更好地運行之前,他們無法這樣做。還有幾個人感到困惑,許多 bug 將不會在 2.7.5 版本的插件中修復,只能等到 2.8 版本。
Scala + NetBeans?發(fā)言人=Dick
接著是 Dick 講 NetBeans。很不幸,Dick 沒法將他的筆記本電腦連接到 Twitter 辦公室里的大屏幕上,所以沒有進行演示。Dick 講了 NetBeans 插件的好除和壞處。Dick 說他之所以選擇 NetBeans 是因為他們公司大量使用 Maven,而 NetBeans 對 Maven 的支持很棒。他還說 Maven + Scala 與 Maven + Java 同樣好用。Dick 認為 NetBeans 的可靠性非常好。雖然存在一些故障,但每件事情都保持一致而且穩(wěn)定。從來不需要打開/關閉項目或重啟 NetBeans。不過還是有一些問題……編譯失敗時語法高亮顯示無法顯示。很長的表達式鏈會破壞代碼完整性。Java 互操作也會破壞代碼完整性。 混合 Java 源文件代碼和 Scala 源文件看起來不能很好地正常運行,所以 Dick 總是先將 Java 編譯為 jar 文件。優(yōu)點是……類型推論(type inference)工作良好,你可以跳過推論類型并獲取推論類型的信息。調試通常也很好,但變量查看會在閉包內部中斷。Dick 還碰到單元測試的問題,但他認為這可能是由 Maven 以及 Surefire 的集成造成的。總之,Dick 認為 NetBeans 插件雖然笨重但仍然為他節(jié)省了很多時間。很多人表示,如果他們不是使用 Maven 或 Ant,或者如果他們不是從零開始,還是會遇到問題。僅導入一串已有的代碼而沒有創(chuàng)建腳本(build script),對于某些人,這看起來很麻煩。
Scala + IntelliJ…… 發(fā)言人=Bill Venners
最后是 Bill Venners 談 IntelliJ。Bill 說 IntelliJ 已經變得非常穩(wěn)定,他在一個大型 Scala 項目(ScalaTest)中大量使用它。安裝很簡單,插件可以直接從 IntelliJ 那里直接獲得。代碼完整性也很棒。IntelliJ 不能與 C# 類型的包一起很好地運行。通過 hover 獲取類型信息也不能始終如一的正常運行。不過,單元測試運行非常好。調試也基本過關。某些重構(refactoring)功能也很好,比如重命名類/對象/方法。但是,Bill 試圖預覽一個重命名時,造成了程序崩潰。當他僅執(zhí)行同一個重命名時,又可能良好地運行。Bill 認為移動一個類只能在物理場面移動該文件,你仍然不得不手動地重命名包信息。
總之,大多數人能看起來都同意目前 IntelliJ 是正確的選擇。它看起來具有 Eclipse 的正確性,又具有 NetBeans 的穩(wěn)定性。有幾個人表達了他們的擔心,如果你想用 Scala 的 IDE,你將不得不購買一款昂貴的產品(IntelliJ)。還有一些人說到如何通過參與開源項目獲得免費的 IntelliJ。一些人對于 2.8 版本的種種可能性感到很興奮(如51CTO之前報導的有關Scala 2.8命名參數的消息),但更多的人表示擔心,由于每個人都在等 2.8 發(fā)布,它可能會被延遲,這樣 2.8 可能仍然距離我們很遙遠。
原文來源:Scala社區(qū)交流郵件 發(fā)信人:michaelg
【編輯推薦】