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なんですかねー。次回もあるようなのでまた行ってみようと思いま した。