16
こわくないScala for Java programmers 水島 宏太 日本Scalaユーザーズグループ 株式会社ユビレジ

Scala is-unscared

Embed Size (px)

Citation preview

Page 1: Scala is-unscared

こわくないScala  for  Java  programmers  

 水島 宏太  

日本Scalaユーザーズグループ  株式会社ユビレジ  

Page 2: Scala is-unscared

自己紹介  

•  水島 宏太    –  Twi3er:  @kmizu  –  Github:  h3ps://github.com/kmizu/  

 •  Scala  Days皆勤賞(2010,  2011,  2012)  -­‐>  どうでもいい  •  好きなもの  •  (プログラミング|形式)言語  •  静的な型システム  •  メタプログラミング  •  Scala  

Page 3: Scala is-unscared

Scalaは怖い?  

•  よくわからないけど怖そうな機能  –  Implicit  conversion(暗黙の型変換)  –  Implicit  parameter  (型クラス)  

•  関数型言語とのハイブリッド  •  Scalaz  •  Scalaの人たちが怖い  

 Scala怖い!  

Page 4: Scala is-unscared

ちょっと待って  

Scalaは怖くない  

Page 5: Scala is-unscared

Scalaへの誤解  

•  関数型の概念を理解する必要がある  •  implicitなんとかを使いこなす必要がある  •  関数型なコードを書かないと叩かれる  •  Scalazという謎のライブラリを普通に使う  

Page 6: Scala is-unscared

誤解(1)  関数型の概念を理解する必要がある  

•  もちろん理解した方がいい  •  最初から全て理解する必要はない  – 「タイプ数が少ないJava」になる事を恐れない  

•  少しずつ考え方を変えよう  –   第一級の関数の活用  –   ループから再帰、再帰から高階関数へ  –   Scalaの関数型プログラミングのサポートは          Javaプログラマには理解しやすい  

Page 7: Scala is-unscared

誤解1についての補足  (第一級の関数を例として)  

•  第一級の関数 =  無名クラスのインスタンス  val  f  =  (n:  Int)  =>  n  +  1  f(3)  //  4  

   val  f:  FuncQon1[Int,  Int]  =  new  FuncQon1[Int,  Int]  {      def  apply(n:  Int):  Int  =  n  +  1  }  f.apply(3)  //  4                      

Page 8: Scala is-unscared

誤解1についての補足2  

•   val  f:  FuncQon1[Int,  Int]  =  new  FuncQon1[Int,  Int]  {        def  apply(n:  Int):  Int  =  n  +  1  }  f.apply(3)  //  4    FuncQon1<Integer,  Integer>  f  =            new  FuncQon1<Integer,  Integer>()  {          Integer  apply(Integer  n)  {  return  n  +  1;  }      }  f.apply(3);  //4                      

Page 9: Scala is-unscared

簡単!  

Page 10: Scala is-unscared

誤解2  implicitなんとかを使いこなす必要がある  

•  スクラッチから書くときには必要ない  – もちろん、使いこなせると便利  

•  Scalaのコードを読む時は知っていると良い  – 読むときになってから勉強すればいい  – 最初から全てを知ろうとしない  

Page 11: Scala is-unscared

誤解3  関数型なコードを書かないと叩かれる  

•  一部にそういう人は居ます  

•  多くの人は普通に教えてくれます  – 「教えたがり」な人は意外に多い  

•  言葉遣いが端的な人は(普通)怒っていません  – どうか怯えないで  

Page 12: Scala is-unscared

誤解4  Scalazという  難しいライブラリを普通に使う  

•  そんなことはありません(キリッ    •  コアなライブラリ作者が使っていたりする  – 使いこなせると便利なので  

 •  普通のScalaプログラマには必要ありません  – ここ重要(テストに出ます)  

Page 13: Scala is-unscared

お勧め書籍  

•  Scalaスケーラブルプログラミング第2版    – 通称コップ本(Scala作者たちが著者)  – Scalaの入門本&関数型プログラミングの入門本  – 分厚いけど、丁寧な解説  

•  Scala逆引きレシピ  – Scalaでしたい事をするときに必要なライブラリ

やツールを逆引き形式で知ることができる  – コップ本とセットでお勧め  

Page 14: Scala is-unscared

まとめ  

 

Scalaはたぶん怖くない  

Page 15: Scala is-unscared

宣伝:  Scala  Conference  in  Japan  2013  

•  2013年3月2日(土)    10:00〜18:30    •  会場:東工大 大岡山キャンパス  •  目玉  –   Typesafe社から4名の招待講演者  

•  定員:200名  (完売)  •  懇親会はまだ参加可能  

•  URL:  h3p://scalaconf.jp/  

Page 16: Scala is-unscared

海外からの招待講演者  

•  Jonas  Boner    – Akka作者、Typesafe共同創業者)  

•  Joshua  Suereth  (Scalaチーム)  – 『Scala  in  Depth』著者  

•  James  Roper  (Play  2コアチーム)  •  Jamie  Allen  (コンサルタント)