Programming Scala読もうぜ(3)
どうも、鹿島和郎(かしまかずお)です。本コラムの更新は基本的には1~2週間に1回程度の予定なのですが、最近はいろいろと動きがあったので若干更新頻度が高めです。旬のネタは勢いがあるうちに書いた方がいいですよね。単に暇なだけ、なんてことはありませんので誤解をなさらないようにお願いいたします。
■勉強会関連
○会場確保
さて、前回の勉強会会場は「株式会社××」と伏字にしましたが、会員番号2番が会社の上層部の方に掛け合ってくれた結果、社名公開の許諾がおりました。株式会社××改め株式会社HDEさんの会議室を、毎週1回、勉強会会場として公式に使わせていただけることになりました。
前回は何となくこっそりとやった感はあるのですが、次回は堂々と実施することができます。
○ATNDにイベント登録した
上述のHDEの方からATNDで参加者を募ってはどうかと提案されましたので、早速イベント登録をしてみました。
(わたしも含め)参加者の多くはScala初心者ですので、東京近郊でご都合の付く方はお気軽に参加していただければと思います。
○Scala勉強会@東北に参加した
Twitter上でScala勉強会@東北をオンライン配信しているという情報を得て、早速9月2日の回を拝聴しました。
内容は「Scala Watch」という、Scalaコミュニティの1週間を振り返るコーナー、そして2.8で新しくなった(らしい)コレクションクラスの説明です。個人的には「Scala Watch」が非常に役に立ちました。
あと、画面配信には独自のしくみ(?)を使っていたようで、画面が鮮明でした。次回か次々回あたりから取り入れたいと思います。
実は、Scala Watchでは第1回読書会もちょっと触れていただいたので、挨拶がてらTwitterでちょっと反応しようかと思ったのですが、小心者なので何もしませんでした。すみません。
○発表者確保
後述しますが、9月4日にもScala座というScalaユーザーが集まるイベントに参加してきました。灼熱(しゃくねつ)の名古屋で開催されましたが、関東からの参加者も比較的多かったです。お話しした数名に勉強会の話をしたところ、興味を示したため、半ば強引に発表をお願いして引き受けてもらいました。
家に引きこもらないで積極的にコミュニティに参加する、という今年の目標(?)はどうやら達成されたっぽいので、この積極性を女性に対しても発揮していくことが来年の目標となりそうです。
■Scala座
Scalaをはじめて約1週間。書いたコードの総行数は20行程度の素人にもかかわらず、日本全国からScalaの猛者が集まるイベントに参加してきました。
発表内容は、理論的な話、事例紹介、デモ、ライトニングデバッグ、そして名古屋名物ライトニングデバッグと多岐に渡ります。レベルとしても、素人でも比較的分かりやすい話から結構専門的な話までいろいろあり、なかなか密度の濃いイベントだったと思います。
まとめページを作った方がいらっしゃいますので、ご興味のある方はそちらをご参照ください。
○個人的に興味を持った発表
以下、わたしが興味を持った発表をいくつか挙げたいと思います。
・Scala Daysに行ってみて(資料)
Scala Days 2010というワークショップに行って発表をしてきたそうです。他の方の発表やScala開発チームの方達とのお話などを紹介していました。
Scala Days 2010のプログラムはこちら。
わたしとしては、純粋な技術的興味もありますが、実際に使えるの? という部分が気になりますので、以下2つの発表は興味深く見られました。
・Lift on GAE/J(資料)
Scalaで動くWebフレームワークをGoogle App Engine上で動かす際の問題点を説明していました。結論としては、現段階ではLiftをGAEで使うのはまったくおすすめできないとのことです。
・Scala 2.8でひるまのおしごとしてみたよ(資料)
Scalaを使ったサービスの事例紹介です。LTなので細かい話は聞けませんでしたが、この内容+αで勉強会で発表していただけることになったので、そのときにまたいろいろ質問しようと思ってます。
ちなみにどういった夜のお仕事をされているのかは不明です。
・ライトニングデバッグ
きしめん、味噌煮込み、名古屋台湾ラーメンなどの独自の食文化、そして、派手な結婚式、名古屋撃ち、名古屋嬢などの他に類を見ない数々の文化を誇る名古屋。IT関係のコミュニティ活動が非常に活発なのも特徴だそうです。独自性を重んじる名古屋の中でも一際異彩を放つのが、近年積極的に行われている「ライトニングデバッグ」だそうです。
形式としては、5分程度の持ち時間の前半でコード(バグ持ち)の説明などを行い、後半で会場のみんなの英知を結集させてデバッグをします。持ち時間内にデバッグが完了すればOKというもの。
わたしは一番後ろの席に座っていたためスクリーン上のコードが読めず、また、読めたところで何の貢献も行えないのでちょっと置いてけぼり感があったのですが、どうやらバグは直せたようです。
ちなみに発表のタイトルは「ワラビモチとScalaについて」でした。資料はネットには上がっていないようです。
○懇親会
知らない人ばっかりのイベント・勉強会の類に参加するのは今回が初めてでした。ですが、参加登録の際に勇気を出して「懇親会参加」のラジオボタンもクリックしました。
懇親会は近くのチェーン居酒屋で開催。横長いテーブル席だったので、あまり沢山の方とはお話できませんでしたが、いろいろと興味深いお話を聞かせてもらいました。
個人的に興味深かった話題がScalaコンパイラ(Scalaのソースコード→classファイルにコンパイル)の速度の話でした。
「Scalaコンパイラって少し遅いね」に対して、以下のような意見が出ました。
- それでScalaイラネっていう人も、もしかしたらいるのかも
- 頻繁にコンパイルするっていう使い方ってあまりしないと思う
- Rubyみたいな使い方をScalaに求めるのがそもそも間違い
- 型推論など、Javaのコンパイラに比べてやるべきことが多いので、遅くなるのは仕方ない
ScalaをRubyなどのスクリプト言語の代替にするというのは、少なくとも言語の設計者や現在のScalaユーザーの大半の方にとっては想定外と思われます。ただ、適材適所の重要性はもちろん理解していますが、個人的には、あるツール・言語の使い方を最初から限定するのではなく、当初想定されていない使い方でも、ユーザーが自由にやることで何かが生まれる可能性もあると考えています。ですので、スクリプト言語的な使い方をするにはどうすればいいのか、みたいな議論もありかなと思ってます。
○2次会、そして3次会
2次会は当然。有志6名による3次会も、某ビジネスホテルのロビーにて深夜2時まで開催されました。いろいろためになるお話を聞けて、個人的には満足しています。
遅くまで付き合ってくださった方々、ありがとうございます。
○雑感
さて、本イベントに参加して思ったことをいくつか書いていこうと思います。
・業種の壁?
参加者の多くが高い技術を持った方々で、職種としては現場のエンジニアの方が中心でした。また、業種としては(わたしがお話しした範囲では)Web系の方が多かったです。
わたしは業務系のシステムを扱うことが多いのですが、業務系とWeb系の間では技術者の交流があまりないような気がします。みなさんの周りではどうでしょうか。そうした「見えない壁」みたいなのを取り除いていくと、いろいろとみんなが幸せになれるような気が何となくしてます。
ギラギラした起業家(準備中も含む)が集まる暑苦しい「異業種交流会」みたいなのにはあまり興味はありませんが。
・最先端の技術者≠尊敬の対象
そのほか、印象に残っているのが、懇親会の席で数名の方が
「(今回のようなイベントに)行くっていっても、あまり理解されない」
「よくて『真面目なんですね』っていう反応が返ってくるくらい」
「どうせ引かれるので会社の同僚には話はしてない」
などと言っていたことです。
高い技術・意欲を持ったエンジニアの方々が、必ずしも尊敬の対象ではない、変わり者・マイノリティとなっているのは、なかなか興味深いと思いました。日本でのプログラマ軽視に関しては、以前のコラムでも少し触れたような気がしますが、もっと多くの人が考えていくべき問題だと思います。
■Programming Scalaはどうなったの?
タイトルが「Programming Scala読もうぜ」のくせに、本の話にまったく触れないのも問題ですので、少しだけ。
先週もぼちぼち読み進めてはいたのですが、本書のサンプルプログラムのコンパイルで依存関係などが出てきて、だんだん面倒になってきました。ということで、現在サンプルプログラムのビルド環境を作っています。
当初はsbt(simple-build-tool)というコマンドラインのツールを使おうと思ったのですが、名古屋でMavenの利用を薦められたので、そちらを使って悪戦苦闘中です。ある程度めどが立ったら勉強会で発表します。
サンプルプログラムのダウンロードはO'Reillyのページより。
■まとめ・今後
Scala座は、参加費・新幹線代・飲み代・ホテル代・お土産代……などを合わせるとそれなりの出費を伴いました。しかし、それ以上のものを得られたと思います。
勉強会に関しては、ぼちぼち軌道に乗ってきたのでは、といい切ってしまいます。早めに勝利宣言を出すのが未成熟な人間の特徴ですので、どうかご容赦ください。
あとはわたし自身がもう少しレベルアップするとともに、初心者向けの内容を勉強会やブログなどで公開しようと思ってます。英語が苦手な方も多いようですので、本家MLのまとめを毎週ブログで紹介しようかとボンヤリ考えています。
さて、思いつきで始めた「Programming Scala読もうぜ」シリーズは今回でいったん終了として、次回からまたi18n関係の話でもしようかと思います(多分)。
それではまた。