32
Scala.jsのすすめ (だいたい)新卒エンジニア交流会#4 @ara_ta3

Dark vol4 for_slideshare

  • Upload
    arata3

  • View
    751

  • Download
    0

Embed Size (px)

Citation preview

Scala.jsのすすめ(だいたい)新卒エンジニア交流会#4

@ara_ta3

わたし• 新卒2年目(14年卒)

• あどてく系のえんじにゃー

• Twitter : @ara_ta3

• このイベントの運営

• FF7リメイク(女装シーン)が楽しみ

• がっこうぐらし良いよね。

S…Scala.js?

Scala.jsとは?

• altJs(Alternative JavaScript)の一種

• 雑に言うと型を持ったJavaScript

• コンパイルするとJavaScriptになる

• 例)TypeScript, CoffeeScript …

Scalaとは?(雑に)

• JVM上で動く言語の一つ。

• 型がある。

• コンパイル速度の話はしない。

• リスト処理凄く強いよ。

Scala.js3分クッキング

• チュートリアルやってみよう

• http://www.scala-js.org/doc/tutorial.html

Scala.js3分クッキング

• ここにScalaのコードがあるじゃろ

• ( ^ ω ^ )

• ⊃Scala⊂

Scala.js3分クッキング

• これを `sbt fastOptJS` して

• ( ^ ω ^ )

• ≡⊃⊂≡

Scala.js3分クッキング

• こうじゃ

• ( ^ ω ^ )

• ⊃ scala-js-tutorial-fastopt.js ⊂

ちゃんと動くよ

Scala.js使ってみようと思った?

え、本当に使えるの?だって?

やりましょう with Vue.js

• Vue.jsのTODOアプリ例がすごく良く出来てるのでこれを利用します。

• http://jp.vuejs.org/examples/todomvc.html

Vue.jsとは

http://jp.vuejs.org/ より

やりましょう with Vue.js

• Vue.jsのTODOアプリ例がすごく良く出来てるのでこれを利用します。

• http://jp.vuejs.org/examples/todomvc.html

準備とか

• 昔記事書いたので参考に・・・

• http://arata.hatenadiary.com/entry/2015/08/07/215021

やってみたよ• レポジトリ

• https://github.com/ara-ta3/scalajs-vuejs-todo-app

• Scala.jsで書いたTodoアプリ(一部機能削除)

• http://aratanaka.pw/scalajs-vue/

• jsファイル

• http://aratanaka.pw/scalajs-vue/scala-js-vue-js-todo-app-fastopt.js

まずは差分を見てみよう

JavaScript vs Scala.js• TodoアプリをJavaScriptで普通に書いた時

• https://github.com/yyx990803/vue/blob/dev/examples/todomvc/js/app.js

• 126行

• 2.4 KB

JavaScript vs Scala.js• TodoアプリをScala.jsで普通に書いた時

• https://github.com/ara-ta3/scalajs-vuejs-todo-app/blob/master/src/main/scala/dark/todo/App.scala

• ↑をjsにコンパイルしたファイル

• 4117行

• 133 KB

JavaScript vs Scala.js

• 126行 vs 4117行 32倍

• 2.4KB vs133 KB 55倍

JavaScript vs Scala.js

• 126行 vs 4117行 32倍

• 2.4KB vs133 KB 55倍

世の中良いことばかりじゃない

エラーがわからん

debug入れれば良いんでしょ

出ない\(^o^)/

逃げの一手

StackTrace多い

感想• Dynamicばかりで正直Scala生かしきれてない

• ※Dynamic : 動的なメソッド呼び出しができるScalaのtrait

• 自分の実装の問題?

• Scalaのコードがjsにコンパイルされたらどう動くかをとても意識しないといけない

• jsの世界と切り分けたいんだけど、Vue.jsがそもそもDomとのデータバインディングを担うライブラリだからテーマが悪かった感すごい。

まとめ

• ScalaはいいよScala!あとScalaz!

• 型めっちゃ強くていいよね

• Scala.jsでライブラリ触るのすごく大変だよ!

• Scala.jsのすすめなのにすすめてない?知らない。