11月の19,20日に開催されたWebDB Forumに参加してきた。カンファレンスそのものは、いろんな人に久しぶりに会えたり、ネット上でなんとなく知っていても話したことなかった人と話したり、意外な人の意外な一面をみることができたりと、とても楽しむことができた。立場としては所属している会社のスポンサー枠で参加して目的もあって発表もしてきたわけだが、いくつか思うところがあるのでここにまとめておきたい。
現実にアカデミックで起きていること
WebDB Forumと銘打ってはいるものの、データベースに関する研究発表は非常に少ない。OSやネットワーク、システム系の研究と併せても、機械学習やNLP、Webなどの技術に感心を持つ人は多く数で圧倒されている。体感では 90% だ。それをいえば別に VLDB や SIGMOD などのトップカンファレンスもデータベースの技術を直接扱うことは少ないし、データベースの要素技術は多岐にわたるので一概に定義することは難しいのだが。まあ私が興味を持てる発表が少なかったと言い換えても構わない。
学会がこのようになっているのは、当然の原因があって、そもそもデータベースを扱う研究室が非常に少ない。わたしはそんなに知っているわけではないが、インダストリアルからも見えているのは東大の喜連川研、東工大の首藤研、筑波大の川島研、最近できた阪大の鬼塚研がわずかに取り組んでいるだけだ。それもクラウドの要素技術のひとつとして、研究室の一部で…というのが実態だ。ComSysやDEIMに行けばもっと多様なものが見られるのは知っているが…
現実にインダストリアルで起きていること
まずはいくつかのスライドをはっておく。
これがCassandra
ほかにも、 CyberAgentにおけるMongoDB や [C16] インメモリ分散KVSの弱点。一貫性が崩れる原因と、それを克服する技術とは? by Taichi Umeda など、アカデミックとは違うことが起きているのが分かるだろうか。
これは単なる人材の需給のミスマッチで説明できる現象ではなくて、そもそもこういった下回りの技術に若者たちが興味を持たないという傾向がここ十年以上続いていることが遠因だ。現に私が学生だったときも、OSやデータベース、ネットワークにまだまだ研究課題があるとは思っていなかった。それは教科書や論文の延長で考えれば確かにそうなのだけど、現実世界に引き込んだ瞬間に違うことになる*1。…のだが、その魅力に気付いたのは、私の場合は大学を出てサラリーマンになってからだった。分散システムやデータベースに出会って、自分で設計してみて、実装してみて初めて分かることがあまりに多い。とんでもなく優秀な人なら、周囲の助けも得て学部から修士の3,4年でその境地に辿り着けるだろうが、私のようなふつうの学生 はそうではなかった。
あと最近はAWS使えばそれで大抵うまく動くので別にいいよね、みたいな。身近に問題がないというのも問題なのだけど、…。
どうしたらよいのか
WebDB Forumで何人かアカデミックやその出身の人と話した限りでは、やはり講義が少ないという現実があって、それは学生が興味を持たないことも原因だし、教授陣があまりそっち系の講義をやっていない&できる人がいないことも原因でもある。人が集まらないのはなぜかというと、…という言葉を考えるとちょっと言葉に詰まる。
とりあえず分散システムの人はトランザクションを学ぶべきだし、トランザクションの人は分散システムを学ぶべきだ。だから、とりあえず、Bashoという会社に行くと(どっちかというと分散システムの知識にかたよるけど)両方の経験が身につくので、行ってみるといいと思うよ!
奇しくも、5年も前に 基盤系プログラマ - kuenishi's blog などという煽り記事を書いた問題がわりと近い方向であたっていて、今ではどんな会社もちゃんとしたインフラエンジニア(当時はそういう言葉がまだなかった)を欲しがっている。これからデータ量やトラフィックが益々増えていくとそういう人種の価値がますます上がるわけで、この需給のギャップを解決するためには、やっぱり最初の一歩は大学の講義が増えて「こういう技術、ものすごく金になるんですよ」とか、「本当に賢いヤツらはここに集まっている」ということを滾々ともう一度伝えていくしかないのだろうかとか最近考えている。
追記
欧米でわぁ〜、というのはあまり言いたくはないのだが UCB の cs262 をネット上で貼ってくれている人がいたのでここでもリンクしておこうと思う。わたしもあまり多く追えてはいないのだけど、アメリカでCSの強い大学だとどこでもこのレベルの講義があって、学生がヒィヒィ言いながら履修している(という印象だ)。日本だとこういうのなかったよね、少なくとも私が学生だった頃は。
*1:某チョプリン氏がよい例だと思う