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