sifue's blog

プログラマな二児の父の日常 ポートフォリオは www.soichiro.org

Scala2.9から2.10への移行作業の健忘録

ただの作業ログです。

build.sbtのscalaVersionを2.10.0に変更

scalaVersion := "2.10.0"

以上のようにする。

Seq#firstをSeq#headに置換

盲目的に置き換え。

Squerylを2.10対応の最新バージョンに。でもリポジトリのURLがおかしいので直接追加

libraryDependencies  ++=  Seq(
  "org.squeryl" %% "squeryl" % "0.9.5-6" from "http://repo1.maven.org/maven2/org/squeryl/squeryl_2.10/0.9.5-6/squeryl_2.10-0.9.5-6.jar",
  "mysql" % "mysql-connector-java" % "5.1.21"
)

actor使えなくなるのでakkaへの乗り換え。実装量大。

object actors is not a member of package scala
[error] import scala.actors.Actor

悲しい...。build.sbtに

resolvers += "Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/"
 
libraryDependencies += "com.typesafe.akka" %% "akka-actor" % "2.1.1"

を追加して、あとはakkaのAPIを見ながら実装していきます。
というかActorの作り方も、実装の仕方や例外のハンドリングなんかも基本全然違うのでakkaに合わせて書きなおさないと、変な感じになってしまう。というか書きなおしたほうが早い。

まとめ

結構コード量があったこと、元々Actorを使いたくてScalaを選んでいたところもあるので、2.9からの移行はそれなりに大変でした。というか全部終わらず、無理にバージョンアップさせる必要はないと感じました...。辛すぎる。せめてコードコンバーターとかあれば。


まだ生まれて10年経ってない言語の辛さだなぁ。まだ2.11と3.0でも大きく変わりそうだし。しゃーなし。