tamuraです。
Scalaは2年位前にCourseraで勉強して以来です。

資料はconnpassにアップされてありました。
“Septeni×Scala”勉強会 #1


1.Scala普及の例/オリジナル新作マンガの配信サービス「GANMA!(ガンマ!)」でのScala利用例・感想

by 杉谷保幸さん

  • 前職はドワンゴでPHPを使ってニコ生とかを開発
  • その経験からPHPでちゃんとやり続けるのは難しい


  • なぜScalaか?
    • 簡単だから
    • 継続可能だから


  • 意識さえ高ければどんな言語でも問題ない
    • が、続けるのは難しい
    • そのレベルの人に例えばPHPをやり続けてもらうことができるか?


  • ちゃんとした実装を行い続けるためにScala
    • Scalaなら楽にできる
  • ちゃんとした人と出会うためにScala
    • わざわざ(今現在)Scalaをやろうという人は意識高い系なはず
      • 素晴らしきハッカー(2004)
      • Pythonのパラドックス(2004)

「素晴らしきハッカー」より

プロジェクトに使うインフラを決定するということは、 単なる技術的な決定ではない。それは社会的な決定でもあり、 両者のうちではむしろ後者のほうが重要かもしれない。 例えば、あなたの会社>がソフトウェアを書こうとした時、 Javaを選ぶのが、分別ある態度に思えるかもしれない。 しかし、言語を選ぶというのは、同時にコミュニティを選んでいることにも なる。Javaのプロジェクトで働くた めに雇われるプログラマは、 Pythonを使うプロジェクトで雇えるプログラマほど 賢くはないだろう。 そして、雇えるハッカーの質は、たぶん言語の選択よりもずっと重要だ。 もっとも、正直に言えば、>良いハッカーはJavaよりPythonを好むという事実が、 これらの言語の相対的な利点について何かを暗示していると思う。

「Pythonのパラドックス」より

私は、Javaプログラマが間抜けだと言いたかったわけじゃない。 Pythonプログラマが賢いと言いたかったんだ。新しい言語を学ぶには 相当の努力が必要だ。そして、Pythonを学ぼうという人は、それ で 就職できるという理由で学ぶわけじゃない。 プログラムが本当に大好きで、それまでに知った言語に満足できなかったから 学んだわけだろう。

まさにこのことから、自分からPythonを学ぼうという人こそが、 会社が求めるべきプログラマということになる。

  • 普及のために
    • 自分で空気を動かす!
    • 成功するしかない!


  • 成功させるために
    • テストを書く
    • pull-requestでマージの際にレビューする
    • Scrum
      • 3〜4人くらいのチームが良い
    • DDD(ドメイン駆動設計)
      • 設計の難しさに立ち向かうための技術


  • 道具を揃えて頑張る!

2.Scala関数プログラミング初級

by 加藤潤一さん

内容とはまったく関係ないのですが、無名関数やクロージャがあるんだなーと再確認しました。

scala> val square = (x: Int) => x * x
square: Int => Int = <function1>

scala> square(2)
res1: Int = 4

scala> ((x: Int) => x * x)(3)
res2: Int = 9

scala> def counter() = {
     |   var x = 0
     |   () => {
     |     x += 1
     |     x
     |   }
     | }
counter: ()() => Int

scala> val c1 = counter()
c1: () => Int = <function0>
ter
scala> c1()
res3: Int = 1

scala> c1()
res4: Int = 2

scala> val c2 = counter()
c2: () => Int = <function0>

scala> c2()
res5: Int = 1

scala> c2()
res6: Int = 2

unapplyはHaskellみたいな動きだなーと思いました。

3.新卒で初めて学ぶ言語がScalaで良かったこと/大変だったこと

by 寺坂郁也さん

  • とりあえず始める
    • わからないことがわかってくる
    • まわりに聞ける環境があったことが大きい
  • 型があると良い
    • 中に何が入っているのかがわかる
    • 何が返ってくるのかがわかる
  • 初心者が学ぶ言語としてコストが高いわけではない
    • 周囲の環境が大事

感想

Scalaやってみようかな、という気になりました。
以前CourseraでやったときはEmacsで書いていたんですが、それなりにIDEがあった方が書きやすそうと感じました。IDEはやっぱりIntelliJなんですかねー。次回もあるようなのでまた行ってみようと思いま した。