ScalaならNetBeansがサイコー

NetBeansのScalaプラグイン最高。NB 6.5 beta、Windows XPで試しました。

これまでscalaコードを書くときはScala Plugin for Eclipse使っていましたが、インデントが崩れるのと色づけくらいしかやってくれないので、さほどメリットはありません。

今日試してみたらNetBeansプラグインの方がダントツにいいです。
このページの「1.Get Started with NetBeans 6.5 beta+」で試してみました。コード補完がばっちりで、コードインデントもきれい。



(隠れてますけど、object Main0 extends Main1 です。)


上の画像をみるとわかると思いますが、
■コード記述時に既に型推論してくれている。
■記述したJavaDocもリアルタイムで表示されている。
■Java API/Scala APIともに完璧にサジェストしてくれる。

これスゴくない?
NetBeans使うとScalaの学習効率よくなると思いますよ。

今日のところ残念ながら、
■NetBeans6.5 beta + scala pluginの組み合わせが、Windows Vistaでは動作しない(既知でdev版では修正済みとのこと)。
■NetBeans NightlyBuildでは、pluginのインストールが依存関係が解決しなくて(僕には探せなくて)成功しない。
という点は確認しました。6.5の正式リリースが待ち遠しい感じ。


今日はscala勉強会@東北第二回ありました。

一番学んだことは、scalacでコンパイルしたclassをjavapにかけてみるとscalaコンパイラがどういう変換を掛けているのかわかりやすい。特にJavaからScalaを呼びたいときには有効な解析方法。

以下、おさらいコード

 //コードブロックをスレッドに渡す
 //引数に型を指定しないと遅延評価にできる

 //scala.concurrent.ops#spawn
 def spawn(p: => Unit) = {
  val t = new Thread() { override def run() = p }
  t.start()
 }

 def spawnWatchDog(): Unit = spawn {
  while (true) {
   Thread.sleep(10000)
   println("xxxxx")
  }
 }

 //try-cacheも式
 val serverSocket = try {
  new ServerSocket(port)
 } catch {
  case e: IOException => fatal("")
 }

 //ここからは消化不良。後で勉強。

 //scala.Console#withOut
 val outVar
  = new DynamicVariable[PrintStream](java.lang.System.out)

 def withOut[T](out: PrintStream)(thunk: =>T): T =
  outVar.withValue(out)(thunk)

 scala.Console.withOut(bufout) {
  someFunc()
 }

 //コンパイラの中身
 //scala.tools.nsc.CompilerCommand#processArguments
 //scala.tools.nsc.Settings
 //scala.tools.nsc.reporters.ConsoleReporter
 //scala.tools.nsc.util.Position
 //を辿って勉強すると良い


コメント

コメントしてください
お名前:
入力しなければ「匿名さん」。20字以内。

メール:
入力しても表示しません

URL:
入力すればリンクが貼れます


コメント: