Developers Summit 2009に参加する
2009年2月12,13日、目黒雅叙園で行われたm「Developers Summit 2009」に参加してきた。仕事に丸2日も穴を開けるという贅沢をさせてもらっているので、いろいろ吸収したいところである。
写真は目黒雅叙園名物、廊下にたたずむ巨大な門。千と千尋っぽい。
タイムテーブルはこんな感じ。以下、見てきたセッションと感想、気になったキーワードなど。
【12-C-2】
『未来へつながる言語~ある言語おたくの視点から』
(株)ネットワーク応用通信研究所 フェロー / 楽天株式会社 技術研究所フェロー
まつもとゆきひろ
イントロダクション
Rubyの話じゃないし、役に立つ話じゃない。
こんなセッションが満席なんてどうかしてる。
Rubyの話をするのはおなかいっぱいなので言語オタクとして好き勝手に語る。
プログラミング言語の進化
世界初のプログラミング言語:FORTRANではなくPlankalkul
ソフトウェアのライフサイクルを考えると、プログラミング言語の息の長さは例外的。FORTRANは1954年に誕生したがいまだに現役で使われているドメインもある。
プログラミング言語は多数の言語の生存競争によって、あたかも進化論のごとく進化してきた。
進化の要因には…
簡潔さ:低レイヤを抽象化することで生産性をあげる
新パラダイム:構造型、オブジェクト指向、論理型、関数型など
外的要因:コストやハードウェア性能など
温故知新:以前は普及しなかった概念が、広く受け入れられた言語によって再注目され広まる
→例:JavaがVM,GC,Exceptionなど以前からあった概念を広めた
プログラミング言語は「冒険」→「改良」→「普及」のステップを踏んで進化する。
プログラミング言語の現在とこれから
今来ている言語:Ruby, Haskell, Erlangなど
→関数型言語の影響が感じられる
これから来る言語:APL
→APLそのものはともかく、マルチコア/メニーコアの普及に伴い並列処理に適した言語が見直されるのでは
感想
確かにすぐ役に立つ話ではなかった
トリビア的な話が多く知的好奇心は刺激された
まつもとさんが好きなことについて楽しそうに話すので聞いていても楽しい気分になった
【12-A-3】
『時を超えたプログラミングの道への道』
株式会社永和システムマネジメント サービスプロバイディング事業部 チーフプログラマ / 日本Rubyの会
角谷信太郎
XPとは
XPとは「社会」の変化のことである(Kent Beck)
社会:個人→人と人→チームや組織→政治や経済
ソフトウェアは「人が人のために作っていることを知っている」こと
XPは誠実なプロである普通の人達のためにある
→ハッカーにXPは不要かも?
竹内預言:「プログラムを書いたことのないシステムエンジニアが威張っているような会社は早晩亡びる」(「ビューティフルコード」)
亡びないための「時を越えたプログラミングの道」
時を越えたプログラミングの道
XPの目的:調和とバランス
「道」:tao
→陰陽道の「陽中陰あり、陰中陽あり」。二元論ではない。
ビジネス:テクノロジー
ワーク:ライフ
エンジニアリング:アート
コード:ドキュメント
テスト:設計
クリストファー・アレグザンダーの著書「時を越えた建設の道」で述べられてることはXPそのもの
→元ネタであることは公然の秘密
パターン・ランゲージ
パターン:出来事や関係に名前をつけたもの。アレグザンダーは「人工世界の原子である」と述べている。
→「砂漠の風紋」「湖沼のひび割れ」
ランゲージ:単語としての「パターン」に対して「文法」。パターンを組み合わせて意味をつむぎだす。
プロセスを重視している。
→例:すべての蜘蛛の巣はユニークだが同じプロセスにしたがっている
「時を越えたプログラミングの道」への道
XPはパターン・ランゲージであり、真剣に取り組む者なら必ずたどり着く道である。
ソフトウェアパターンのムーブメントはまだ幼年期である
→James O. Coplien「On the Nature of The Nature of Order」(邦訳)
開発プロセスがアジャイルであるだけでは不足。ソフトウェア開発の全体がアジャイルになる必要がある。
「人生、宇宙、すべての答え」は42である(via Wikipedia)。
→質問は失われてしまった。そしてXPはその失われた質問である。
亡びないために問いかけ続けよう。人はゆっくり変わる。
Social Change starts with you.
感想
XPのプラクティスは「人と人との関係改善」であることが多い。そして、どんどんシンプルな「人間関係がいちばん大事」という結論に向かってるような気がする。きっとそれが正しいんだろう。
同僚が / 上司が / 組織が / 会社が変わらないことを嘆く前に、まず自分が変わるところから始めよう。
アツく語る角谷さん。なんだか心を打たれました。もっと長く聞きたかった。
【12-A-6】
『オブジェクト指向エクササイズのススメ』
株式会社オージス総研 / オブジェクトの広場編集部
菅野洋史 / 大村伸吾
ちゃんとオブジェクト指向でプログラミングしてる?
Struts使ってるからOOPではない
オブジェクト指向とは「責務を持ったオブジェクトのコラボレーションで複雑なシステムを構築する」こと
銀の弾丸ではないが武器は多いほうがよい
→プロジェクトチームみんなで学ぶべきこと
オブジェクト指向エクササイズとは
「ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション」という本で紹介されているプログラミング技術のトレーニング技法
ハードなコーディング規約でオブジェクト指向プログラミングを強制する
ハードなコーディング規約とは:
- 1つのメソッドにつきインデントは1段階までとすること
- else句を使用しないこと
- すべてのプリミティブ型と文字列型をラップすること
- 1行につきドットは1つまでとすること
- 名前を省略しないこと
- すべてのエンティティを小さくすること
- 1つのクラスにつきインスタンス変数は2つまでにすること
- ファーストクラスコレクションを使用すること
- Getter、Setter、プロパティを使用しないこと
エクササイズの効能
惰性で行っていた設計を見直すことができる
制約をクリアする方法を考えることでテクニックがつく
チーム間で行うことにより教育・議論を呼ぶ
感想
まとめの言葉「壁を越えよう!議論をしよう!」が暑苦しくてよかった。
サンプルコードなどJavaだったのだが、PHPにも応用できるのだろうか。考えてみよう。
「ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション」は角谷さんのセッションでも取り上げられていたし、読んでみよう。
【12-D-7】
『コミュニティから選出のLT大会』
[司会]
ミラクル・リナックス株式会社、シニアエキスパート / 勉強会勉強会 / カーネル読書会
吉岡弘隆
株式会社永和システムマネジメント コンサルティングセンター / オブジェクト倶楽部
永田祐子
[参加コミュニティ]
勉強会の法則(動作原理)「開催のメリット>開催のコスト・デメリット」。見失いがちだが当然なので反省。
「主催者が一番楽しい」のか!確かに、ささやかな社内勉強会でも開催の楽しみはある。
「開発って楽しい?」に即答できない今の私。
「現場を変えるには自分を変えることから」。またこの話出た。それだけ重要で、それだけ難しいってことだよね。
個人の環境をCloneできる、ZFSを使った差分とスナップショットなど、OpenSoralisのメリットをいっぱいアピール。
そういえば私もゲームから転職するとき、Solaris 10のx86版をインストールしてみたんだった。
コンビ漫才でライトニングトークは斬新。そしてお二人ともやたら上手だった。さすが営業職というべきか?
活動自体はレポートを見る限りお堅い印象なので、漫才LTはアピール手法として有効だったと思う。
オブラブのことはほぼ放置で「沢田マンション」についてのトーク。
さっきも出てきた「建築とアジャイル」の関係。頼み手/作り手/使い手がお互い歩み寄るのが重要、というお話だった。
既存の「要求開発」の問題点をもとに「要求開発2.0」を作成中。
要求(=頼み手)と開発(=作り手)の関係というテーマでは「またアジャイルか」。真剣に取り組むものは必ずたどり着くのか。
「プロジェクトの成功と関わる人のやりがいの両立を目指すチーム作り」についての活動。
成果として「バグレゴ」がある。以前見て「おおっ」と思っていた。
ネット上にもコミュニティはある。難しい面もあるが地理的・時間的制約がある人はまずそれに参加するのがいいのでは。
「半年ROMってろ」重要。RubyのMLでは「半年分ROMった」ことが有効だったとか。
「何か」を作るプロジェクト。動くものが好きなのでプラグインとか大好き。
開発環境の設定を共有することで「集合知」を形成する。かっこいい。
「情報発信している人たちの集団」。
週に一度はどこかで勉強会が開催されているとか。すげぇ。
Grails / Groovyのユーザグループ。名前しか知らなかったが、なんかすごい。もう少し調べてみよう。
後半時間切れでばっさり。しっかり聞きたかったので残念。
【13-A-1】
『これからのWebテクノロジーを予測する』
サイボウズ・ラボ株式会社 / アジアジン共同創業者
秋元裕樹
最近のキーワードについてつれづれ
Web 2.0
バズワードだし、最近飽きられ気味。
そう間違ってはいないし、あっていい言葉だと思う。
クラウドコンピューティング
これもバズワード。今年は熱いのでは。
個人的にまとめると「スケールするバックエンドをネット越しに量り売りすること。それを使うこと。」
日本ではユーザ企業/開発者とも文化が違うのでどーんと普及するのは難しいかも。日本ではASP人気ないし、自社データを外に出すことに抵抗が強い。
内部で持っておきたい文化。
OpenID
Webに特化したシングルサインオン。
一般人が10年かけて覚えた「IDとパスワードを入力する」というUIをひっくり返すのは難しいのでは。
今のところプロバイダ(通常メガサイト)にしかメリットが見えない。使うほうが得する仕組みを考えたらすごいのでは。
OpenSocial
Facebook App以外の共通仕様。
儲かってるプレイヤーだけ見ていると痛い目にあうかも。
課金については相変わらず課題。日本の携帯アプリはキャリア提供の課金システムがあるのでその点では強い。
OAuth
ブラウザベースで元サービスの資源を第三者サービスにアクセスさせる許可を与える仕組み。
ユーザのアイデンティティ管理がサービス間のマッシュアップで犠牲になるので、それを解消するために開発されたプロトコル。
twitterで限定ベータ公開中。
OpenSocial / OpenIDとのつきあい方
ほかのビジネススキームが存在するところに「PR」として実装するのは価値がある。
エンジニアが直接今のままのものに仕事で関わることは少ないだろうが、知っておく / 触れておく必要がある。
これらの技術がエンタープライズ分野に転用される可能性が高い。
システム間の結合を疎に保ち、テスト性・運用性が向上する。
コンシューマ市場で敲かれた仕様は信頼性が高まったところで転用されるだろう。
CGM / UGC
2ch,mixiなどは「集合知」。
これから重要になるポイント:
レコメンデーションエンジン
スパム対策
監視支援ツール
監視も集合知でまかなわれる
Google:GMailのスパムフィルタ
うごメモはてな:子供(DSiユーザ)を大人(はてなユーザ)が監視
WordPress:世界中のブロガーが検出したSPAM情報が重要な商材
CGMの増加で監視が「売り」になる
「モバゲータウン」は新潟で300人体制
省力化・自動化が売りになる
ブラウザ
エンタープライズ分野はIE(とFF)でほぼ決まり
それ以外のブラウザも仕様にしたがうようになっている
→競争のポイントが独自仕様から安定性・速度・セキュリティなどに移った
Web開発者にとってはいい流れ。
RIA
Flash, Silverlight, JavaFX, JavaSciptなど
作って遊ぶのは楽しいが…
自由度が多様なUIを生み、UIの不統一は混乱をもたらす
まとめ
栄枯盛衰、次は必ず来る
10年前はYahoo!が未来永劫webを支配するような気がした
→今はそんなことない
まだwebははじまったばかり
webを、そしてwebを通じて世界を変えるのはエンジニア
アイデアだけじゃなく実行力が重要。実施する力こそエンジニアリング。
技術がすべてではないが、主役交代のシーンには必ず技術が関与している。
なんでも作ってみること、公開してみること。
感想
サイボウズラボ秋元さんの貴重な出演シーン。相変わらず顔出しNGを貫いていて、変なマスクをかぶっていた。
朝早くてめげそうになったのだが、行ってよかった(5分ほど遅れてしまったが)。いい話だった。
淡々と訥々と話すのだが、まとめがアツかった。公開すること重要。
【13-A-2】
**『「Delphi for PHPのエバンジェリストが、日本のPHPエバンジェリストと、PHPとIDEの今と未来を語る」
~Embarcadero Technologies Presents~』**
[モデレータ]
有限会社 アートライ / 日本MySQLユーザ会
坂井恵
[パネラー]
qadram software S.L. CEO
Jose’ Leo’n
株式会社ディノ / Maple Project
高橋邦彦
株式会社ビート・クラフト シニアエンジニア / 日本PHPユーザ会
小山哲志
Delphi for PHPとは
Delphi for Windowsのようなグラフィカル統合開発環境。
コーディングなしでデスクトップアプリケーションを作るような感覚で開発できる。
ビューエディタのようなものでコンポーネントを配置、コードコンポーネントをドラッグ&ドロップでwebアプリケーションができる。
感想
会場の人口密度が下がってしまった。PHPへの注目度の低さに泣ける。
お決まりのコードをたくさん書かなくちゃいけないPHPでの開発にIDE、というのは発想としてありなのかも。
…でも、仕事で使うことはなさそうだ。
【13-A-7】
『Webセキュリティ攻守攻防パネルディスカッション
「Webアプリケーション/Ajaxセキュリティ徹底バトル」』
[モデレータ]
サイボウズ・ラボ株式会社
竹迫良範
[パネラー]
ネットエージェント株式会社 / まっちゃ139 / XSS Nite
はせがわようすけ
はまちちゃん
HASHコンサルティング株式会社 代表取締役
徳丸浩
エレクトロニック・サービス・イニシアチブ有限会社 / 取締役社長 / 日本PostgreSQLユーザ会 / 日本PHPユーザ会 / Momonga Project
大垣靖男
気になったキーワード
脆弱性を見つけたら?
→しかるべきルートに報告しよう。いきなりblogでどーんと公開、とかはNG。
イントラの脆弱性は直さなくてもいい?
→クリティカルなデータがある分逆に危険。社内全員信用できるとしても直す必要あり。
オープンソースwebアプリの脆弱性は?
→オープンソースだから(脆弱|安全)と信じ込むのが間違い。
たとえば、PHPを避ける?
filetype:php site:ipa.go.jpでgoogle検索
→4万件以上ヒットする
徳丸:
言語としてマルチバイト対応してない
→拡張モジュール、ライブラリごとに対応状況が違う、デフォルトの挙動が不統一
文書化されてない仕様
サポートライフサイクルが短い
旧バージョンの見切りが早い
→5が出てから3年半で4見切り
バージョンアップに付き合う決意が必要
その割にバージョン間の仕様差がある
大垣:
PHP4の見切りは早すぎたと個人的に思う
5.2のサポート期間が不安
PEAR / PECLライブラリにも脆弱性がある
ブラウザの「脆弱性」と「仕様」の境界について
問題がいろいろあるのでwebアプリ開発者に同情する
→ベンダに「仕様」と言われるので回避方法すらない
不満があるなら声を上げよう
→このようなカンファレンスにはベンダの人間がいたりするので直接声をかけると効果的
脆弱性の指摘は正規の窓口へ
→Mozilla Foundationは任意のコードが実行できる脆弱性を報告すると賞金が出る
WAF(Web Application Firewall)ってどうよ?
導入のコスト・手間がかかるという悪印象がある
→実際はけっこういいもの
基本はプログラムで対処する
→保険的な対策と割り切り、無駄な手間・コストをかけない
立場によって考える
→実装担当は「存在しないものとして考える」、運用担当は「導入を検討する」
感想
「攻撃者」はせがわさん・はまちちゃんと「防御者」大垣さん・徳丸さんという構図での激論…を期待したのだが、はまちちゃんがインフルエンザのため元気がなくて残念。おだいじにおだいじに!
PHPについてのところが長くなった。個人的には「どの言語で書いてもタコはタコ」と言いたいが、タコを量産しがちなのはPHPの欠点。
セキュリティ関係については勉強してもしても全然足りない。もっと勉強が必要だし、チームへの教育も必要と改めて実感。
ということで丸2日間仕事に穴を開けて、いろんな話を聞いてきた。何らかの形でアジャイルというテーマに触れている話が多かったのが印象的。「真剣に取り組む者が必ずたどり着く」かぁ。そして長時間座っていたので大変おしりがいたくなった。
エンタープライズから草の根勉強会まで振幅が激しく大きいイベントだった。なにがなんだかよくわからない部分もあるが、多様性は善であるので今後もますます発展してほしい。いろんなことに触れられるのは貴重な機会だし。そして次回はぜひ、どこかのホールを会場に「オフィシャル懇親会」なんかも開催してくれたらな、と思う。
●つなぐ、つながる、そして未来へ Developers Summit 2009
http://codezine.jp/devsumi/2009/
●Developers Summit 2009 – デブサミ2009>タイムテーブル