Scala for JSer's

自己紹介

Scalaとは

Scalaとは

コードはDartとも似てる

(Perlよりは)

豊富な言語仕様

JSer的に嬉しい部分

JSerに辛い部分

コードの紹介

object HelloWorld {
  def main(args: Array[String]) {
    println(hasA("bbb"))
  }
  def hasA(s:String) = {
    for(i <- 0 until s.length) {
      if(s(i) == 'a') return "hit"
    }
    return "miss"
  }
}
case class Hoge(huga: String = "huga", foo: String = "foo") {
  def bar = foo
}
object HelloWorld {
  def main(args: Array[String]) {
    val hoge = Hoge(foo = "aaa", huga = "bbb")
    println(hoge.bar)
  }
}
case class Hoge(huga: String = "huga", foo: String = "foo") {
  def bar = foo
}
object HelloWorld {
  def main(args: Array[String]) {
    implicit val hoge = Hoge(foo = "aaa", huga = "bbb")
    println(implicitTest())
  }
  def implicitTest(implicit huga: Hoge) = {
    import huga._
    bar // huga.bar()
  }
}
case class Hoge(huga: String = "huga", foo: String = "foo")

object HelloWorld {
  implicit def hogeToString(h:Hoge):String = h.foo

  def main(args: Array[String]) {
    val hoge = Hoge(foo = "aaa", huga = "bbb")
    println(hoge)
  }
}

「すごいのは分かった」

(分かった?)

「でもJSerにはDartの方が良くない?」

(フロントでも動くし)

その意見、もっともです

そこで

Scala.js

「あー、また半端な他言語の移植VM?」

(JavaVMのもあったよねー)

わりとガチ

わりとガチ

「でも、なんか死ぬほど重いんじゃなかったっけ?」

(ランタイムコードが22MBとか)

最新版で改善されました!

(依存関係解決できるようになったので、最小構成で220KB)

使い所

使い所

欠点

欠点

夢の続きを

ご清聴ありがとうございました