2010/11/16 webプログラマのためのscala入門勉強会@渋谷
TRANSCRIPT
![Page 1: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/1.jpg)
Webプログラマのための
Scala 入門勉強会 #2
http://atnd.org/events/9664twitter: #wpscala, @wpscala
![Page 2: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/2.jpg)
自己紹介
実は、私プログラマーではありません。
ちょっと司会を頼まれただけです。
おどおど。。
![Page 3: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/3.jpg)
自己紹介
• というのは嘘で、一応ちょっと書いてます言語は内緒。※facebookとかで使ってるやつ。
• 社内ベンチャーのような環境で働いてます仕事は全部自分で決めます!
• twitterカンファレンスに行ってきたよ!Scalaの講演見てきたよ
![Page 4: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/4.jpg)
自己紹介
やりたいこと: ネットワークプログラミング
定年退職後は、湖のほとりの静かなコテージ
で、どーせ誰も使わないNoSQL作って公開するお!でもJava勉強しなきゃ(Cはさらにご勘弁!)せっかく一から勉強するなら、やっぱりScala?
![Page 5: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/5.jpg)
自己紹介
それとも node.j...あ、いやなんでもないです。。
※ちょっと最近Nodeさんに火照りぎみ。誰か助けて!!
ツイッターは、@chikaram です。
なまえは、「三宅(みやけ)」です。
よろしくお願いします。
![Page 6: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/6.jpg)
せんせい紹介
• あさいさん: @hito_asa弊社のエースっす
• よしださん: @xuwei_kScalaといえばこの方!?※twitterで「scala」で検索してみてw
![Page 7: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/7.jpg)
会社紹介
GMOメディアといいます。
以上
![Page 8: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/8.jpg)
会社紹介
社長: @morimascaras「何? Scala? スイスの教授のアレでしょ?いやーオレそれ来ると思ってたんだよねー」
![Page 9: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/9.jpg)
会社紹介
っていうのは嘘で。。
「いや、三宅ぇ。ここだけの話し、
ぶっちゃけScalaってどーよ!?」
at 飲みの席
![Page 10: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/10.jpg)
本日のスケジュール
ソーシャルラーニング?21:00~ (60min)
自己紹介・先生紹介
20:00~ (10min)
Let’s drink up @庄や!!22:00~
休憩
20:50~ (10min)もにょもにょとイロイロお話
20:10~ (40min)
![Page 11: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/11.jpg)
参加者自己紹介Time!!
簡単にで構いません。
お一人様、10~30秒程度で、サックリめに!※声がマイクに拾われるかもなので、
本名・会社名はチョメチョメでおk。
![Page 12: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/12.jpg)
ありがとうございました。
![Page 13: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/13.jpg)
この勉強会の目的・スタイル
ここからちょっと
println("Hello World") 以前の話をします。
![Page 14: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/14.jpg)
この勉強会の目的・スタイル
さて、困っています。
![Page 15: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/15.jpg)
この勉強会の目的・スタイル
当社は、外部に公開された勉強会の
経験がありません。
さて、
勉強会ってどうやればいいんだろう。。
![Page 16: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/16.jpg)
この勉強会の目的・スタイル
とはいえ、だいたいの枠組みは決まっています。
簡単に説明しますので、ツッコミを下さい。
※この勉強会は「みんなで」作っていきます。
(その方が、主催者も楽できるのでw)
![Page 17: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/17.jpg)
目的
• Scalaの普及?• コミュニティの形成?• 会社の宣伝?• イザと言うときの人材確保w?
![Page 18: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/18.jpg)
目的
目的はまぁいいや。
楽しくやりましょう。
![Page 19: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/19.jpg)
コンセプト
ソーシャルラーニング。とか。
(先生がうろちょろしてる自習室)
会社は設備とキッカケの提供だけ。
みたいな。
![Page 20: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/20.jpg)
コンセプト
継続的にやります!
• 先生が「もうErlangやるお!」って言うまで• 先生が会社に飽きちゃって大工になるまで• Scalaが無くなるまで(まぁこれはないか)• 会社が無くなるまで• なんか全体的に飽きちゃうまで
![Page 21: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/21.jpg)
コンセプト
基本は初心者向け
常に、Hello Worldな人を受け入れます!!
毎日が第2回(#2)くらいの雰囲気。
以前、某Cass○ndra勉強会第N回に参加したら完全アウェーだった。どの回からでも参加できるし、どの回から抜けても
いいようにしたい。月1とか、3ヶ月ぶりでもOKとか。
![Page 22: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/22.jpg)
想定される参加者
• JavaやPHPでWebアプリもう飽きたおって人• Ruby自由すぎてついていけないお[型]い人• 関数型・並列こんぴゅーちんぐハァハァな人• 仕事でやらされるから助けて!!って人• まっすぐ家に帰りたくない人• だれかと酒呑みたいだけの人
![Page 23: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/23.jpg)
参加すればどーなる?
• if文と変数でおみくじスクリプトが書ける!• イカしたMessage Queueサーバーを書いてtwitterに入社できる!
• ここの講師になれる! (無給)
つまりはその人次第。
でも一緒になんか作れたらうれしいね。
![Page 24: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/24.jpg)
1日をどんな感じでやるの?
• 班に分かれる• 気の合う仲間で群れてもいいかも(Javaの人、
PHPの人、Perl、Ruby、その他ギーク/ニートの人)• 2時間を30分・90分に分ける• 30分: 前回の質問の回答・ちょっとした発表・共有したい疑問・初参加者の自己紹介等
• 90分: ひたすらコーディング・読書・おしゃべり・質問等
![Page 25: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/25.jpg)
シリーズで分ける?
• 1シリーズ6回・3ヶ月(1四半期)とか?• それともシリーズ区切りなしでイテレート?
どうしましょう?
どちらにしろ、アーカイブを作って、どの回か
らでも自由に参加できるようにしておきます。
![Page 26: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/26.jpg)
さて、前回の宿題
みんなScalaで何をしたいの?
なぜScalaなの? 何を期待しているの?
を話そう!!
![Page 27: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/27.jpg)
さて、前回の宿題
貴重なご意見ありがとうございます。
![Page 28: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/28.jpg)
Scalaの話する?
もし時間があれば。
![Page 29: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/29.jpg)
Scalaのいいところ• オブジェクト指向: Java, C#, Python• 関数型: Haskell, F#, Ocaml• 統一オブジェクトモデル: Smalltalk, Ruby• 普遍ネスティング: Algol, Simula• 統一アクセス: Eiffel• アクター: Erlang• スケーラビリティ: Lisp, C++いろんな言語のいいどこ取りっぽい。言語オタ万歳!!※『ボクらのScala』より
![Page 30: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/30.jpg)
Scalaの悪いところ
ゆえに文法が膨大!!
コーディングスタイルの文化や、
ベストプラクティス的なもの、
Convention over Configuration的なものが形成される必要がある?
チーム内で規約が必要
![Page 31: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/31.jpg)
Scalaのいいところ
JVM言語なのでJavaの資産をそのまま使える。
• Javaのライブラリー使ったり• Androidアプリ作ったり• GAE上で動かしたり• 既存のJavaプロジェクトのとあるクラスをこっそりScala化したり
![Page 32: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/32.jpg)
Scalaの悪いところ
JVM。なんか面倒。。
Scalaのソフトウェア使うのに、Javaが要るの? Javaって何ぁに?
JDKのインストール。Sunのページ開いて、次へクリックして。。URLをコピって、
んで環境変数設定して。。
![Page 33: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/33.jpg)
Scalaのいいところちょっぱや
http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php
![Page 34: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/34.jpg)
時間あまったかな?ちょっとだけ、別の言語の話していいですか?
![Page 35: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/35.jpg)
node.jsEvented I/O for V8 JavaScript
![Page 36: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/36.jpg)
これは来ます。
というかもう来てます。
![Page 37: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/37.jpg)
黒船かも?
![Page 38: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/38.jpg)
そこのPHPの人「コンパイルいらないし楽なんだよねー」
なんて言ってられません。
そこのJavaの人「スクリプト言語とちがって速ぇーんだよ」
なんて言ってられません。
![Page 39: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/39.jpg)
JavaScriptでしかも速いんです。
http.createServer(function (req, res) {~~~;
}).listen(80);※Webサーバーだって数行で書けちゃうの図
JBoss NettyもApache Minaもjava.util.concurrentとかそういういかめしいものは要りません。
![Page 40: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/40.jpg)
「全部コールバックやねん!!」※某lispエンジニアより
rows = database.fetch(category = 'news')
database.fetch(category = 'news', callback)
![Page 41: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/41.jpg)
問題点
(お前が言うな)
![Page 42: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/42.jpg)
非同期スパゲッティ
![Page 43: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/43.jpg)
そこでScala!?
Scalaでは(SmallTalk, Rubyのように)全てがオブジェクト。Actorを利用すれば、オブジェクト指向の考え方、チーム体制、開発手法、
テスト手法のままで並行プログラミングがで
きる!!
できる!? 多分。。
![Page 44: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/44.jpg)
node.jsでネットワークプログラミングの味をしめたプログラマーが、もっと「何か」を求
めて、Scalaに流れてくる可能性があるかも!?
![Page 45: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/45.jpg)
以上、適当なことを申し上げてしまいました。
![Page 46: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/46.jpg)
休憩Time!!
トイレはこちら
![Page 47: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/47.jpg)
自習Time!!• ほんとうにはじめての人はLet’s get Scalaed!• 先生に質問もOK!• もっと詳しい自己紹介やダベりもOK!!• 読書会をやってもいいお• 黙々とコーディングするのもオシャレ• 分からないことは隣の人に聞いちゃえ!
みたいなユルユルな感じでいいのかな?まぁ、#wpscalaでつぶやいてみて!!
![Page 48: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/48.jpg)
終了!!
ご参加ありがとうございました。
次回も参加したり、しなかったり、
誰か誘ったり、誘わなかったりしてください!!
まぁ、楽しくやりましょう。
![Page 49: 2010/11/16 WebプログラマのためのScala入門勉強会@渋谷](https://reader033.vdocuments.net/reader033/viewer/2022052600/5585621fd8b42a4c298b49b4/html5/thumbnails/49.jpg)
懇親会Time!!
Let’s 庄や?