ACといえばAnonymous Cowardだと思っていたのだが、 私の母校では違った意味を持つらしい。
たとえば、情報学類では、極端にコンピュータやネットワークなどに詳しいにもかかわらず、解析学や物理などの単位を落とすような人(そしてそういう人たちが集まってつくるグループ)が存在するが、彼らは間違い無く『ACの人たち』である。情報学類で3年次、4年次になって、「今年で解析学4回目だよ〜」などと言っている人はACに違いない。
<中略>
また、近年においては『AC』という用語の意味が拡大しており、ACというのは必ずしもAC入試で筑波大学に入学した者を指すのでなく、ACっぽいことをしている人やACのような考え方をしているような人のことをすべて包括して『AC』と呼ぶこともある。というか、自分の周囲では最近はほとんどそのような広い意味で物事を表現するすばらしい言葉として使用されているようである。
この定義においては、たとえば情報界においては、有名なすごいオンラインソフトを作っているような人たちは大抵ACと呼ばれる。プログラミングが人並み外れてできる奴もAC、一日中ロボットを作っているような人たちもAC、ネットワーク機器のアクセス・インジケータのLEDを見てニヤニヤしているような人ももちろんACである。つまり、ACとは素晴らしいのである。
うむ、大学にはかろうじて入ったものの、数学がだめだめで危うく道にはずれそうになった覚えがあり、 有名な「オンラインソフト*1」の作者でもある私は、ACなのだろうか。 自分はACだと名乗ってよいのだろうか。
しかし、だ。
私は高校時代、プログラミング言語を自分で作りたいと願い、 オブジェクト指向を愛する変な高校生*2ではあったが、 実際にはただ本を読んで、夢想していただけでなんの成果もあげていなかった。
また、(主に数学のせいで)成績はふるわず推薦枠にもひっかからず、 まっとうに受験せざるをえなかった。筑波大を選んだのも実は情報系で数学の配点が当時もっとも低かったからだ*3。
しかも、ACの原因は感電にあるそうではないか。
遅くとも13歳位までの間に誤ってまたは故意にコンセントなどに触って感電したことがある人は、AC になる。
そうでない人は、AC にならない。
自慢じゃないが、私は一度も感電したことはない。 子供のころから電気を恐れていたので。父親から「電流が小さければたいしたことはない。ほれ、やってみろ」と言われても、 決して信じなかったものだ。それに触れることは死を意味するっ。 「あることがらは死よりも恐ろしい」とウォーケンも語っていた。
電気恐い。無くては生きていけないけど。
ああ、ACこそ私にふさわしいラベルだと思ったのに。これもまた私の手の中からすり抜けていった。
10月1日から3日まで、バージニア州ワシントンDCエリア(ってどこ?)で、 Ruby Confernce 2004が開催された。
残念ながら私は出席できなかったのだが、 今年の会場は無線LANが使えたので、会場からのレポートが数多く提供された。 それらを基にして行ってないのにカンファレンスレポートをお送りする。
Teaching Ruby in a Corporate Environment (Jim Freeze)
Jim Freezeは皆勤賞だなあ。大企業においてRubyを活用するというのを一貫してテーマにしている。 Rubyのような「新参者」をISO9000企業で活用するのはなかなか難しい。 その辺を模索しつつ毎年発表してくれている。 なお、偶然だが彼は私と同じ教会に通っている。
しかし、「2**2**2**2**2がPerlでできるか?」というのは、 プログラミング経験者にはそれなりにインパクトがあるのか。 Bignumの実装は無駄じゃなかったということか。
Ruby as Maestro (Rich Kilmer)
John Knightが発表するはずだったのだが、姿が見えないので急遽Rich Kilmerがプレゼンすることに。 彼はInfoEtherという会社を持っていて、DARPAから予算をもらってRubyで開発している。 厳密には開発のメインはJavaプログラムで、それらをコントロールするのにRubyを使っているのだそうだ。
また、RubyをDSLとしても利用しているという。以下はちょっとした例。
wait_for "SocietyQuiesced", 2.hours do do_action "StopCommunications" do_action "StopSociety" end
「気の効いた一言」(Jim Weirichによる引用)
"I loved Java at one time too. I just grew up."
Richと彼の会社はrubyforgeのスポンサーである。
Using and Extending Ruwiki (Austin Ziegler)
Ruwikiについて。個人的にはRuwikiを使った事はないのだけれど、 海外では結構人気のあるWikiクローンである。RCRchiveは改造版のRuwikiを使っている。 カスタマイズ(マークアップのカスタマイズ、マークアップエンジンの変更、ストレージバックエンドの変更など)が簡単らしい。
Tycho: A Proposed Ruby-based PIM (Hal Fulton)
RubyによるPIM(Personal Information Manager)の実装。 Hal Fultonは『The Ruby Way』の作者。昨年のカンファレンスは彼の地元(テキサス)だったので、 ずいぶんお世話になった。
Hacking Ruby (Paul Brannon)
Rubyをハックする。いろいろやってくれてるようだが、becomeだけは勘弁してください。
Alph (Rich Kilmer)
今日2度目の登場のRichは今度はAlphを紹介する。 AlphはMacromedia Flashをフロントエンドとするユーザインタフェース。 Flashならではの美しい画面をRubyからコントロールできる。 昨年のカンファレンスで個人的にデモを見せてもらったが、 なかなか印象的であった。あれからずいぶん進んだのではないだろうか*1。 問題は新しいMacromediaのライセンスは無償でAlphのような形でレイアウトマネージャ(Flex)を利用することを禁止しているようで、 Richは別の方法を模索しているらしい。
参考にしたリンク
Narf: revisiting a 2 year old (Patrick May)
NarfはRuby標準添付のcgi.rbの置き換えを狙うもの。 Narfについての発表は2度目で今回はここ数年の変化について紹介。 興味深いのは彼が紹介したWikiへのいたずらを防止する仕組み。 悪質なIPアドレスからのアクセスは「コピー」にリダイレクトされ、 いたずらやスパムなどの変更は他には見えない。コピーは1日1回リセットされる、というもの。 ワンクリックでスパムをキャンセル、もうワンクリックでIPアドレスを登録、で安心だそうだ。
ruby-doc.org: Now and the Future (James Britt)
Rubyのドキュメントを集めたruby-doc.orgについて。 特に集められたドキュメントのカテゴリ分けなどについて。
Ruby on Rails - Origin, Driver, Destination (David Heinemeier Hansson)
最近売り出し中のWebアプリケーションフレームワークRuby on Railsについて。 「David Heinemeier Hanssonはマーケティングがうまい」というのは、 私の周辺の一致した見解である。見習いたいものだ。 Rubyのすばらしさを発見したDavid(元PHPプログラマ)は、 それを大衆に広めるためのツールとしてRailsを開発した、らしい。
The Many Facets of RubyGems (Jim Weirich)
確かJimは昨年はいなかったよな。Florida, Seattleには出席してたはず。 Ruby向けパッケージングシステムRubyGemsについて紹介。 Ruby Conference 2001でアイディアが提示されたRubyGemsは、 カンファレンスの度毎に進歩している。
そのうち標準になる、かもしれない。
YARV: Yet Another Ruby VM (SASADA Koichi)
本人は非常に心配していたようだが、実はRubyConf 2004で一番評価が高いプレゼンのような気がする。 よく頑張りました。
YARVはRubyを対象としたVM(virtual machine)で、以下の特徴を持つ。
YARVが成功した暁にはRiteの実装(のベース)として採用されることが決まっている。 ながらく話だけだったRiteに動きがあったのは喜ばしいことだ。 ベンチマークも紹介され、それなりに速くなってる(というか、今のRubyが遅いんだけど)ことが示された。
"Test::Unit".downcase.sub(/::/,"/") (Nathaniel Talbott)
Test::Unitの作者であるNathaniel Talbottが「よりRubyっぽい」テストスイートについて語る。 「標準添付されると変化させにくいよね」。まったくだ。 「test/unit2」として開発中だとか。
RubyZine (Shashank Date)
飛び入りの発表。Bill Venners(artima.comの中の人)が音頭をとって、 Rubyに関するWebzineを発行することに決めた、とのこと。 個人的には「『るびま』と記事交換ができればよいね」という話をすでにしている。
Objective-C: A Retrospective (Brad Cox)
Objective-Cの設計者であるBrad Coxによるプレゼンテーション。聞きたかった。 Objective-Cや彼の著作『オブジェクト指向のプログラミング』から学んだこともたくさんあったから。
ところで、彼の話の後半は、彼の最近の活動であるDRM(Digital Rights Management)関係の話だったようだ。 RubyConf出席者にはちょっと面白くなかった、かも。
参考にしたリンク
RubyX (John Knight)
初日に発表するはず(だったが遅れて間に合わなかった)John Knightが15分だけ発表。 RubyXはあらゆるスクリプトがRubyで書かれたLinuxディストリビューションである。 興味深い試みだ。が、なにもそこまで、という気もしないでもない。
Ruby on Windows (Dan Berger)
RubyはWindowsにおいて弱い(私のせいだ)。 その点を改善するためのwin32utilプロジェクトについて。 win32utilを使えば、Windowsサービスを検索する、操作する、登録することが可能になり、 Windowsスクリプティングが容易になる、らしい。 もうちょっとWindowsプログラミングについて知っていたらもっと役立てるんだけどな。
How Dynamic Can You Get? (Jamis Buck)
BYU(Brigham Young University 個人的に知り合いが一杯行ってる大学)のJamis Buckによる Dependency Injection (またはInvesion of Control)の紹介。 Ruby用IoCコンテナCoplandを題材にしていたらしい。
私自身がIoCを十分に理解しているとはいえないので、これ以上のコメントは難しい。 発表したJamis自身も「IoCが十分に伝わらなくて残念だ」と自分のBlogに書いている。
Code generation with Ruby in a heterogenous network application (Gorden James Miller)
「Rubyはコード生成ツールとして非常に有効だ」という話。 目には見えなくてもRubyはあちこちで活躍しています。
参考にしたリンク
全体に良い印象をあちこちで目にしたので、今年のカンファレンスも成功だったのではないだろうか。 普段ネットでやりとりしている人でも、たまに直接会うと新しい知見があったり、 いろんな人の意見を聞くと新しいアイディアが沸いたりする。 カンファレンスってのはそういう意味で有意義だと思う。
来年は行きたいなあ。10月の前半は外してくれるといいんだがなあ。
*1 彼は同じテーマでOSCONでも発表している