2009-04-28 38 views
3

在過去的一年中,我聽到了越來越多的關於Scala語言的炒作。我知道有幾個現有項目計劃將Scala支持與IDE集成;但是,並不總是清楚整合的真正優勢。斯卡拉工具的當前狀態是什麼?

他們目前是否支持Intellisense以及Eclipse和Netbeans爲Java語言所做的工作?他們是否也支持即時驗證?

回答

5

我個人不會說IntelliJ或NetBeans插件的穩定性(儘管我聽說過很好的東西),但最近Scala IDE for Eclipse剛剛在Scala 2.7.4上發佈了新版本。從架構上看,這個版本與以前的版本完全不同,它使用了Equinox Aspects,這是官方支持的擴展JDT機制(以及其他跨插件擴展)。然而,在Scala插件必須使用私有API和反射欺騙系統正常運行之前,Scala插件必須逐字侵入JDT內部,現在只需聲明其擴展點並讓系統完成剩下的工作。甚至很難描述這使得事情變得更穩定。我並不是說這些都是陽光和玫瑰,但如果你過去試過並拒絕了插件(就像我一樣),現在是時候再看看它。

至於它如何疊加功能,SDT沒有任何重構支持(IntelliJ有一些基本的東西,比如「重命名」),編輯器也沒有做「標記發生」之類的東西。但是,它比NetBeans具有更好的Outline,比IDEA更好的編譯器支持,以及非常好的語義突出顯示。所有這三個插件都支持內容輔助(或稱爲「智能感知」,正如微軟所稱的那樣),但這些插件在這方面還沒有特別的可靠性。 Scala IDE for Eclipse是唯一支持增量編譯的工具(alla Eclipse的Java工具)。

我的建議:貨比三家。嘗試所有三種,看看哪一種對你最好。從我聽到的消息來看,Eclipse的Scala IDE已經在其最新版本中跨越了競爭對手,但是其他的已經顯示出如此一致的穩定性和穩步發展,以至於你還沒有計算出它們。

3

這裏有一個類似的問題: Which is the best IDE for Scala development?

在我與Scala IDE for EclipseScala Plugin for Netbeans很短的經驗,這似乎是在NetBeans插件是一個小比Eclipse一個更堅實。

使用適用於Eclipse的Scala IDE我在運行Hello World類型的Scala對象時遇到了問題,有時候語法突出顯示會開始動作。然後,我嘗試了Netbeans插件,它看起來比Eclipse更具功能。

我還沒有使用Scala IDE插件,因此我不能說很多的經驗,但從我的最初印象來看,Netbeans插件似乎更多一點比Eclipse更穩定。

+0

是的,我看到了另一個問題,但它基本上只是人們投票的一個或另一個。我對他們的詳細的真實世界(或實踐)經驗更感興趣。感謝您的反饋意見! :)這聽起來像Netbeans項目更加成熟,並且以更快的速度發展。 – jsight 2009-04-28 05:12:34

+0

這在幾年前可能是真的,但今天並非如此。 Eclipse插件非常高效。 – 2012-07-14 23:40:57

3

目前,所有三個主要的IDE都處於大致相同的支持水平。

  • IntelliJ - 該插件有不適合工作,但是否則相當不錯。自v8以來,底層平臺一直處於低迷狀態(至少在Linux中)。 Eclipse - 這個插件得到了很多支持,並且處於非常活躍的發展階段。
  • NetBeans - 恕我直言,插件的工作比Eclipse更好一點,但不能運行任意文件是一個主要的落腳點。

上述所有問題都由於無法在所有情況下解析AST而受到影響。例如,通過將特徵與隱式defs混合,很容易混淆它們。建議語法錯誤時,不能信任IDE。回到編譯器確定。

0

我正在使用Eclipse Scala插件。它相當不錯,但與Java工具不在同一級別。

3

我很高興使用IntelliJ IDEA 8.1及其Scala plugin,並可以推薦它。它甚至有一個roadmap,你可以通過投票你最喜歡的缺少的功能來影響:)我不太瞭解其他IDE的Scala支持經驗。

-2

作爲intelliJ,不知道。 但是在Eclipse和Netbeans之間,我必須說Netbeans,特別是如果你不願意交易maven,並且你想要一個不妨礙maven的IDE。

Netbeans maven支持只是太好了。

Netbeans Scala編輯器似乎也很好地工作。 我不關心netbeans或編譯器插件中的集成scala開發工具包,或任何這樣的幫助程序。 (b)給我一個像樣的編輯器 (c)讓我從我的.scala文件中鑽取到我的.scala文件中由我的maven依賴關係引用的庫的源代碼。

Netebeans能夠提供所有三個相當好,我相信,即使有時它感覺有點太慢。

我可以說的是, (1)你不會遇到任何編譯問題,因爲任務需要maven。 maven編譯器插件有點太慢了。但是編譯scala vs java總是這樣,很痛苦。如果你已經嘗試GWT編譯Java甚至更痛苦的JavaScript。 (2)Netbeans完美地爲你提供源代碼,並且你可以深入研究最晦澀難懂的sacala操作符,比如電梯的CSS映射器。至於eclipse,eclipse的maven集成一直很討厭。 如果你有一個擁有太多依賴和模塊的大項目,Netbeans maven集成可能會變得非常惡劣。然後檢查由netbeans完成的外部更改非常緩慢。這是netbeans的缺點。

但是,如果你是SBT粉絲......好吧,也許回答可能是別的。

但是對我來說,因爲maven已經成爲今天的事情,所以我不想再回到那些「web應用程序項目」,「庫項目」等等......嚮導,就像你創建時的選項一樣IDE中的一個新項目。 我只是想要「maven project」,並且請通過閱讀pom來弄清楚我的輸出製品是什麼。