新宿scala座2014 3月号スライド
TRANSCRIPT
Scalaを書く時にはまったこと@cosmo__
誰HN: コスモ, cosmo
仕事はRubyだったりAction Script3だったり。
趣味では割とHaskell、最近Scala書いてる
いわゆる最近の人(?)風な関数型erの一人
Twitter: @cosmo__
Blog: http://cosmo0920.wordpress.com/
Github: https://github.com/cosmo0920
Scalaを始めたきっかけ
Haskellを使った関数プログラミングはしっく
り来た
でもOOPな人たちにいきなり勧めるのって
どーよ?
→そんな時にScalaに出会った
Scalaの進捗ダメですorz
sbt
sbt in Linux
やっぱり避けては通れないsbt
コップ本にはscalaコンソールで解説されていた
ネットの情報を頼るしか無い!
http://scalajp.github.io/sbt-getting-started-guide-ja/
sbt in OSX
homebrewでいれる…は良いがOut of Memoryが頻発
実は~/.sbtconfigで設定が必要で悩んだ
こんなの書く:
SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"
Scalaって意外とOOP…
引数の順番
Haskell比で大体逆。
mapとかfoldとか…
括弧が省略できる条件をいまい把握してない
タイプ数多い ※Haskell比
sbtから引っ張れるjar is どこ
sonatypeとかbintrayとかmavenとか聞くまで
知らなかった。
先人のgithubのbuild.sbtを参考にしつつ…
ScalaでJSON今は情報が混在していて探すのが大変だった
HTTPリクエストやJSONを扱うにはdispatchが今はい
いらしい
http://dispatch.databinder.net/Dispatch.html
タイプセーフに書ける
使ってみた→ https://github.com/cosmo0920/
Garakuta/tree/master/Json4s_Test
使ってみた感想
確かにタイプセーフになる
想定していないJSONがくるとスタックト
レースが流れる
パターンマッチのありがたみ
便利なものはScalazに通じる
Scalazを知った時は感動した…が、巨大すぎ
ませんか…
Battery Includedとはこのことか!
まとめScalaは関数型とOOPのハイブリットというけれど
Scalazを使わないとOOPかも
Scalaの言語仕様はかなり巨大ということがわかった
関数プログラミングの入門には良いかも
Haskellと違ってソースまで読まないとちょっと怖い
Scalazにもっと慣れないと…