web-dev-qa-db-ja.com

どのIDE for Scala 2.8?

This 古いバージョンのScalaでも同じ質問ですが、Eclipseプラグインが大幅に改善されたと言われています。今が最高のIDEですか?今日の比較Scala IDEはどうですか?

40
Łukasz Lew

IDEA 9でかなり成功しました。NetbeansとEclipseの両方を簡単に試しましたが、必要なものを取得できませんでした。Eclipseのコードコンプリートは同様に動作しませんでした。私は好きだったのですが、NetbeansにScalaスクリプトを処理させる方法を見つけることができませんでした。ファイルがクラスではないと文句を言うだけです。

明確にするために、私はJavaでIDEAを数年間使用しているので、それを覚えておいてください:)

26
Sean

今のところ、Scala IntelliJのプラグインIDEAが最適です。Scala 2.8をうまく処理します。IntelliJIDEA Community Editionは無料でオープンソースになりました(そしてScalaで動作します)ので、それを使用しない理由はわかりません。

プラグインはまだややバグがありますが(多くの「誤検知」、つまり赤いアンダースコアのないコードは正常にコンパイルされない可能性がありますが、「誤検知」はほとんどありません)、完全に使用できます。最良のことは、IDEAの優れたデバッガーをScalaで使用できることです(問題がないわけではありませんが、実際には機能します!)。

FSC(Fast Scalaコンパイラ)も最新のビルドでサポートされています。大幅な時間の節約になります。

プラグイン開発チームは非常に敏感です。何人かの人はJetBrainsで直接働き、IDEAプラットフォームについての深い知識を持っているので、開発は速く進みます。

13

JetBrainsIDEAのScalaプラグインは2.7と2.8を同等にうまく処理します。

IDEAしか使用していないため、比較できません。

8
Randall Schulz

まだ公式リリースがないため、新しいScala(2.8)プラグインの開発バージョンでEclipseHeliosを使用します。それisベータ版、間違いなく-しかし、このプラグインが完全に恐ろしいという頻繁に表明された意見を確認することはできません;-)

経験はすでにOKっぽく、Groovyプラグインの現在の状況よりも確かに優れていると思います。 OTOH、プレーンJavaのエクスペリエンスははるかにスムーズで(時々飛んでいるように感じます)、現在のCDTはその中間で評価します。

インクリメンタルコンパイルとエラーハイライトは私にとって非常にうまく機能します。エラーマーカーがなくなるまでコードを継続的に書き直すだけでDSL実装をフォームに微調整することは、プログラムをテスト実行する必要がなく、まったく楽しいことであり、FP /静的タイピングロック!

時々発生する問題:-他のコンパイルユニット(特にネストされた/スーパーパッケージ)の暗黙的およびネストされた型は、他のエラーがまだ発生しているときに検出されません。それらはフルビルド後にピックアップされます-私が現在使用しているバージョン(2010年8月末から)でメモリリークが発生しているようで、数時間の作業後にワークベンチを再起動する必要があります-使用するときは注意してくださいAspectJ、AJDTでも動作するJDTウィービングバンドルバージョンに依存するScalaプラグインのバージョンを確実に取得するため

PS:私はすべてのプロジェクトでMavenビルドを使用しており、Eclipse-maven-pluginを使用してEclipseプロジェクトを生成し、それらをプレーンフラットEclipseプロジェクトとしてインポートしています。現在(2010)の状態ではM2-Eclipseプラグイン(maven用)に近づかないように強くお勧めします。ワークベンチが非常に遅くなり、バグが多く、ほとんど予測できない動作が多く発生します。舞台裏の魔法のこと(そしてそれに加えて、この春以来、aspectjのサポートは壊れています)

6
Ichthyo

eclipseとIDEAの両方を使用しています

  1. Eclipseは、型検出がIDEAよりも優れていることをサポートしています(式や変数の型から認識できる関数型のプログラムが必要な場合は、非常に必要です。)


    Edit1:IDEA Eclipseのような型検出をサポートしますが、関数で値を定義する必要があります。例:def testTs[A](a:List[String],b:List[A]) = for{ ai <- a bi <- b } yield (ai,bi) }def testTs[A](a:List[String],b:List[A]):List[(String,A)]={ val result = for{ ai <- a bi <- b } yield (ai,bi) }また、変数の上にマウスを置く代わりに、マウスがその変数の上にあるときにctrl + qを押す必要があります

  2. Eclipseにはコード補完でいくつかの問題があります(次の行で変数を使用し、この変数のプロパティを取得したい場合Eclipseは間違ったコード提案を表示します)
  3. in IDEA a scalaアプリケーションはEclipseよりも5秒遅い(バストIDEA実行時間にはいくつかの解決策がありますが、これらにはいくつかの問題があります)アイデアとしては、ファイルを開いたり、ソース内の文字列を選択したりするなど、多くの場合に現れるダブルクリック速度のよく知られた問題があります...作成することでダブルクリックタイムアウトを増やすことができます(または編集)/home/.Xresourcesそして次の行を追加します:*.multiClickTime: 400

Edit1:夏にはEclipseよりもIDEA

非回答:なし。

知覚された多数派の発言に基づいて、IDEAはおそらく今日最高ですScala IDE。そしてそれ(読む: Scalaプラグイン)は最悪です。fscをうまく処理できず、型推論が混乱し、多くのエラーが表示されず、多くの非エラーがエラーとしてマークされ、遅い(検査時)オンになっている)、テストランナーは、中止(!=失敗)テストを黙って飲み込みます...

そこで、一方の画面で構文が強調表示され、もう一方の画面で最大化されたシェルとSBT(シンプルビルドツール)を備えたシンプルなテキストエディターに切り替えました。驚くばかり! SBTは応答性が高く(ファイルの変更により、影響を受けるコードの再コンパイルやテストの再実行をトリガーできます)、依存関係を非常にスムーズに管理し、役立つ出力を提供します(特に、テストの場合、ScalaTestを使用)。 SBTは、IDEAと比べて生産性が大幅に向上しました。

もちろん、コード補完は失われますが、geanyは識別されたシンボルを提供してくれます。ただし、IDEが型推論を取得して正しく機能しない限り、コード補完は役に立ちません。

コードのリファクタリングを気にする人もいます。ええと、IDEはどうやらそこでもうまくいきません。たとえそうだとしても、私は常にそれらを使用するのではなく、この特定のタスクのためにそれらを開くだけです。

4
Raphael

これまでのところ最良の選択肢はScalaIDEforEclipseだと思います。 ScalaIDE Webサイトにアクセスして、自分で見回すことができます。 http://scala-ide.org/

私がそれについて見る長所は次のとおりです。

  • ドキュメンテーション、
  • チュートリアル、
  • 一定のリリース、
  • typesafeからのサポート。

以下に主な機能の概要を示します。

Scala IDEは、EclipseプラットフォームでのScalaアプリケーションの開発をサポートします。その主な目標は、Scala言語のサポートとEclipseJavaツールとの統合です。これは、Eclipseユーザーが期待するようになった多くの機能を提供します。

  • 混合Scala/JavaプロジェクトおよびScala/Javaプロジェクトの依存関係の任意の組み合わせのサポート。タイプ駆動型の操作は、ScalaおよびJavaのファイルとプロジェクト間で透過的であり、ScalaからJavaへの直接参照とその逆を可能にします。
  • 構文の強調表示、推定型、定義へのハイパーリンク、コード補完、エラーおよび警告マーカー、インデント、中括弧の一致を備えたScalaエディター。
  • 埋め込みアウトライン、アウトラインビュー、クイックアウトライン、オープンタイプ、オープンタイプ階層を備えたパッケージエクスプローラービューでのScalaサポートを含むプロジェクトおよびソースナビゲーション。
  • インクリメンタルコンパイル、統合デバッガーを使用したアプリケーションの起動、スタックトレースからScalaソースへのハイパーリンク、インタラクティブコンソール。
  • Plugin.xmlおよびマニフェストファイルからScalaソースへのハイパーリンクを含む、EclipseプラグインおよびOSGi開発のサポート。

更新:この回答に記載されている機能と利点は、Scalaのバージョン2.9と2.10のものです。これは、すでに廃止されているためです。ここを参照してください:

「2.0.1リリースはScala2.9でのみ利用可能です。Scala IDEをScala2.8で使用したい場合は2.0.0リリースをインストールしてください(Scala 2.8のサポートは2.0.0バージョン以降廃止されました) "

4

Scala 2.9はEclipseです。現在のバージョンは以前のバージョンよりもはるかに優れており、コンテキスト認識REPL、フル機能のデバッガー、さらには機能が含まれています。 REPLステートメントをデバッグします。この質問を更新して、回答を再検討する必要があると思います。

3
rs_atl

私の経験は、IntelliJIDEAを明確に示しています。

約6か月前、本格的なScala(マルチモジュール)プロジェクトを開始したとき、お気に入りとしてEclipseを放棄しなければなりませんでしたJava IDEそしてIntelliJ(9.0.x)に切り替えました。EclipseScala IDEはバグが多く、ある時点で応答を停止することがよくありました。最も単純なプロジェクト。CI(Hudson)とコマンドラインのビルドでは、Mavenに依存しています(Scalaプラグイン))。Mavenの依存関係(Scala libsを含む) )はIntelliJによってうまくピックアップされています。

数日前、現在のプラグイン(ナイトリービルド)でIDEA X(CE)に更新し、作業がさらにスムーズになりました。ただし、fscは、非アクティブになるとしばらくすると終了します。

私が見たところ、バグに対応し、プラグインを継続的に改善するために、IntelliJ側ではるかに多くの活動があるように思われることを付け加えたいと思います。私が間違っているときは訂正してください、しかしEclipse Scala IDE開発はほとんど行き詰まっているようです。それでも「公式」Heliosリリースはありません!

注意:コンテキストを提供するためだけに(自慢ではありません):前述のプロジェクトは約25 Scalaモジュール(POM)、5 Javaモジュール、325 Scala合計約360のファイルScalaクラス、ケースクラス、特性(> 19 kLOC、コメントを含む)。私のプラットフォームはOS X 10.6、= Scala 2.8.1、Java 1.6。

更新:かなり大規模なリファクタリング(主にクラスの移動、パッケージの名前変更)が必要になった後、最近のIDEA 10.0.1プラグイン0.4.413(およびおそらく古いバージョンも)物事を正しく行うにはかなりの問題があります。詳細を説明したくありませんが、(ほとんどの場合)未解決の参照や混乱したコードを手動で修正することになりました。 http:// youtrack.jetbrains.net アイデアを得る。

Scalaで本格的な開発を行うことを本当に検討しているすべての人にとって、基本を超えて問題のIDEを評価することを強くお勧めします。私のオプションでは、驚くことなく(特にマルチモジュールプロジェクトで)痛みのないリファクタリングサポートが必要なアジャイルアプローチに取り組んでいる場合、現時点では状況はかなりタイトです。

誰かがIDE独立した仕様のようなリファクタリングのリスト(および望ましい結果)を思いついた場合、それはIDEのリファクタリングサポートを検証するために使用できます。

3
Horst Dehmer

私は最新のNetBeansを使用していますが、他に何も試していません。 Scalaでのコーディング中に、NetBeansで少なくとも2つの注目すべきバグに遭遇しました。

1つ:NBプログラムを実行できなくなり、クラスパススキャンがハングすることがあります。
解決策:新しいプロジェクトを作成し、そこにコードをコピーして続行します。
コメント: このバグは10年以上前のものです

2:特定の名前空間またはクラスのNB メンバーが表示されない )、それらを使用すると文句を言うことがあります。
解決策:無視して続行してください-コンパイラはエラーを検出せず、プログラムは動作します。

2
Ivan

Scala IDE/Eclipseはお勧めしません。Javaを使用したEclipseでも利用できる機能は多くありません。また、バグもあります。

2
Berlin Brown

IntelliJ IDEAコミュニティエディション+ Scalaプラグイン+ SBTプラグイン

1

すべてのオプションには長所と短所があるため、それは部分的にあなたの働き方に依存します。

Javaとscalaが混在するプロジェクト間でリファクタリングが必要な場合は、IntelliJが唯一の選択肢です。

コンパイラーまたはコンパイラー・プラグインで何らかの作業を行いたい場合、Eclipseには、ブレークポイントを含むカスタム・コンパイラー・ビルドを使用してランタイム・ワークスペースを起動できるという利点があります。また、2.8 Scalaリリースでは大幅に改善されました。

Netbeansは、そのプラットフォームに既に精通している場合に最適です。新しい環境を学習するためのコストは、メリットをはるかに上回り、3つのソリューションすべてが急速に向上しています。

1
Kevin Wright

Netbeans scalaプラグインはまだ試していませんが、Intellij IDEAプラグインは、scala EclipseプラグインよりもScala ideの方がはるかに優れていることがわかりました。すっごく遅いので、私は夢中になります。スイングアプリケーションは私のタイリングウィンドウマネージャーではうまく機能しませんが。

1
Isaiah

intellijの最新のコミュニティエディションであるIDEAXを試してみてくださいIDEA(バージョン10)、改善されたscalaプラグインは、コードのコンパイルと実行が高速であることに加えて、 Maven3とSBTのサポートにより、Liftアプリケーションを開発できます。

1
prassee

今のところIDEAのプラグインをお勧めします。

NetBeansのScalaプラグインも非常に優れています。ただし、最新リリースであるNetBeans 6.9はまだサポートされていないため、プラグインから直接インストールするのではなく、手動でダウンロードする必要があります。 NetBeans内のマネージャ。

ただし、IDEAのプラグインよりもMavenプロジェクトとの統合が優れています(これは、一般的にNBおよびIDEA)に当てはまります)。

1
wolverian