Interview with Dmitry Yemanov
2003 / 3 / 10
2003 / 11 / 1 翻訳版 DelphiマガジンVol.31 掲載
Written by Marina Novikova
on InterBase World (URL http://www.interbase-world.com/)
翻訳:林 務(株式会社アペックス)

 本インタビューは、InterBase World のWebサイトでMarina Novikova氏によって公開されたものを、Marina氏とDmitry氏の許可によって翻訳したものです。
 Dmitry Yemanov氏はFirebird 1.5のリリース・マネージャーとして、そのコードのほとんどを書いています。CからC++へのポーティングと、新機能の追加など多方面にわたってその才能を遺憾なく発揮して、プロジェクトを牽引しています。
 Marina Novikova氏はロシアの企業で英文翻訳とテクニカル・ライターをするかたわら、InterBase Worldの管理者をなさっています。Marina氏はInterBase Worldで、毎週のようにインタビューやレビューを更新されているのですが、このインタビューは、技術的なことやビジネスに関することだけでなく、各ゲストの人となりがよく現れていて、私はいつも楽しみにしています。




Marina Novikova: 最初に、Dmitry Yemanovとはどんな人物か、InterBase Worldのコミュニティに話してくれるかな?

Dmitry Yemanov: そうだね、彼は陽気な25歳のヤングマンで、ちょっとした悪質な癖があるんだ。彼の人生は、これ全てプログラミング、その他のコンピューター関係ですら余計な時間を使う余裕もなかったりしてね。

Marina Novikova: 君がヘッドフォンをかけて騒々しい音楽を聴くことや、水曜日にロシア式スチームバス(banja)に行くこと、それに短い年次休暇にハイキングに行くのが好きだって知ってるわよ。どんな音楽が好みなのかしら?ハイキングで気に入ったルートはどこ?それから、どんなタイプのヴェニク(葉っぱの付いた小枝)をスチームバスに吊すのが一番お気に入りなのかな? Dmitry Yemanov

Dmitry Yemanov: 最初に言うと、別にうるさい音楽だけが好きなわけじゃないし、ヘッドフォンで聞くことだけが好きなわけじゃないよ。いいアンプとスピーカーを持っているんだったら、グッドなロックが最高だよ。うーん、でも僕の同僚達はどうやら僕の音楽の趣味を気に入ってくれていないようなんだ。そんなわけで、ヘッドフォンを使っているのさ。こう言えば、僕がどんな音楽が好きなのかはわかっちゃうとは思うけどね。ただ、僕のお気に入りのバンドは数え切れないくらいあるからね。頭から言うと(順番は適当ね)、キングクリムゾン、ピンクフロイド、ブラックサバス、RHCP、O'Funk'illo、ナイトウィッシュ、アポカリプティカ、ジョー・サトリアニ、それから誰でも知ってると思うけどレディオヘッドだね。 スチームバスについて言うと、あなたの言っていることは正解、僕はあれが大好きだね。もう、何年も前から定期的に通っているよ。時間が全然ないときもあるんだけどね。ヴェニクのタイプについては、樺材がいいと思うな(自分で作るならこれがいいね)。時々は、オークやジュニパーのヴェニクも利用するよ。Banjaは心と体の疲れを癒してくれるね、それに最近は仕事の後の精神的、肉体的な緊張をリラックスさせてくれる。 ハイキングについて言うと、ずっと前からハイキングのファンなんだよ。今は全然時間を取ることが出来ないのが残念なんだけど、表向きは、僕はハイキングが大好きということになってるんだよ。僕は未踏の荒野を旅するのがとっても好きなんだ。何キロも何キロも歩いて、ボートで、カヌーで踏破してきたよ。二年前には、夢がかなって、西コーカサスの山岳へ行くことが出来て、征服してきたんだ。その感じを話すのは難しいなぁ、一度行ってみてほしいな。だけど、僕はちょっと太ってきちゃったし、体を全然使って仕事をしてないので、今行けと言われてもきついかもなあ。でも、いいフィットネスとしてこれをすすめたいなぁ、なにしろ僕は2週間で7キログラムもやせたんだから。その頃の僕は肉体的に健康だったし、清く正しい生活を送っていたんだよね。特に好きなルートっていうのはないし、持ちたいとも思わないな、なにしろ僕は新しいもの全てから受ける印象を楽しみたいからね。

Marina Novikova: 他に、なにか趣味はあるのかな?

Dmitry Yemanov: 読書だろうね。いつでも読書することが好きで、よく本を読んでるよ。好きなものはフィクション(クリフォード・シマック、ロバート・ハインライン、アラン・フォスター、ロシアの作家としては、古いものでバシリー・ゴロバチェフ、サージェィ・ルキヤネンコのいくつか)、ファンタジー(ロジャー・ゼラズニィ、トールキン)、旅行記や歴史のドキュメンタリー小説(特に古代に関するもの)だね。

Marina Novikova: 好きなビールの銘柄は?他にどんなお酒が好きかな?

Dmitry Yemanov: ライト・ラガーが好きだね。例えば(また適当に挙げるけど)、ラクプレシス、ネフスコー、オボロン、バドワイザー、スタロプラメン。時々、黒ビールも飲むね。それから、他に選択肢がなければだけど、ペンザビールでもOKだね。 僕はラトビアで生まれたので、ビールは国民的飲料だったんだ(とはいってもチェコ共和国やババリア地方ほどじゃないけどね)、この愛着は生まれつきなのかもしれないね。 他に好きなアルコール飲料で言うと、ジョージアン赤ワインで、ソフトドリンクについて言うと、ミルクシェークとフレッシュ・ジュースが好きだな。

Marina Novikova: いやだなあと思うことと、他の人にいらいらすることはどんなこと?

Dmitry Yemanov: 相手が嫌いだと思っても、しなくちゃならないことってたくさんあるでしょ。どれか一つに決めるというのは難しいなぁ。そうだ、一つはっきりしてること、金を借りるのは大嫌いだね。それから、人々が二枚舌を使ったり不誠実だったりするといやな気持ちになるね。

Marina Novikova: 大きな夢っていうのはなにかある?

Dmitry Yemanov: うーん、一つだけ?わからないなぁ。僕は人生の全ての喜びと困難を経験して生きていきたいと思っているんだ。遠い先を見ることは好きじゃないんだ、先のことばかり考えていると幸運が逃げちゃうからね。 Firebirdについて言うと、多くの人がこのサーバーに興味を持ってほしいと思うし、もっと広めたいと思う。オープンソースの製品の間でさえ、本当にいい製品はそんなには多くないから、Firebirdは大穴だと思うよ。Firebirdの将来についての夢というのはなんとも言えなくて、僕らはただ仕事を進めるのみだね。それに、それ自体僕らに多くを負っているからね。

Marina Novikova: 料理はするの?一番好きな食べ物はなにかな?

Dmitry Yemanov: 料理はそんなにはしないなぁ、でも料理の腕を上げたいとは思ってる。ただ時間が全然ないんだよね。外食するときは、カツレツと野菜とかスモークした魚を頼むね。それとビールね、忘れちゃいけないよ。

Marina Novikova: 通りで女の子にウィンクされたりしたら、どうするー?

Dmitry Yemanov: 少なくとも、ウィンクし返すね。そこから先は、彼女にどんな印象を受けたかによるなぁ。

Marina Novikova: 学歴はどうだったかな?職歴も聞いていい?

Dmitry Yemanov: ペンザ州立大学でコンピューター・エンジニアリングの学位を取ったんだ、それから長いことコンピューターに関わってきた。その頃から、国防省向けの専用システム用のプログラムから、地方市場向けのERPシステムまでを企画・開発してきたんだ。

Marina Novikova: 最初に書いたプログラムはどんなものだった?いつ頃からプログラミングを始めたの?

Dmitry Yemanov: たぶん、大学で暗号化/復号化プログラムを書いたのが最初だね。僕は、暗号化に利用される有限要素法に興味があったので、かなり勉強したんだ。そのために、アセンブラでユーティリティを書いたよ。そのちょっと後で、アンチノイズ暗号化に興味を持つようになって(同じように数学理論に基礎を置いてるものだね)、別のプログラムをCで書いたんだ。僕はそういったプログラムを研究目的で書いたんだけど、思った以上にプロフェッショナルな出来だったね。 僕が初めて本格的な結果を出したのは、ネット越しに機能するオブジェクトを転送するために、DCOMテクノロジーに対して暴虐(この厄介なハックと非公式の機能について他にいい言葉が見つからない)を働いたことだね。僕はそれをモバイル・オブジェクト・テクノロジーと呼んだんだけど、作ったものは動作中のCOMオブジェクト(コードとデータの両方)をネットワークノード間でクライアントに対して透過的に移動することを可能にするメカニズムだったんだ(例:クライアントと対話中のサーバーを、それと感知されないまま別のノードへと移すことが出来る)。これによって、ダイナミックな設定と異なったプログラム・エージェントによる分散システムを構築することが出来るようになるんだ。

Marina Novikova: Firebirdプロジェクトに参加したのはいつ頃から?最初の頃に手助けしてくれた人は誰かな?

Dmitry Yemanov: その話は長くなっちゃうんだよなぁ。最初は、僕はFirebirdを使っていただけなんだけど、それがなかったら開発に参加することにはならなかっただろうね・・・。 1999年に僕らは新しい製品の開発のために安いRDBMSを必要としていたんだ。要件の一つはローカルでのシングル・ユーザアクセスではフリーでなければならなかった。僕は、経営陣がInterBaseがその条件にぴったりだと考えていたかどうかはわからない。まあ、そんな些細なことは誰も気にしてなかった。結果としては、僕がこのことを知ったのは開発の最終段階になってからで、プロジェクトはもはや崩壊寸前だったんだ。僕らはいろんな方法について議論を重ねて、そのどれもが最低でもプロジェクトのデッドラインを2ヶ月かそれ以上越えてしまうということがわかったんだ。ちょうどその時に、ボーランドがIB6.0Betaのソースコードを公開したんだ(ちょうど僕らのプロジェクトはこのバージョンを採用していた)。僕らにとってはたった一つのチャンスだった。この直後から僕は全てのInterBaseに関するイベント、Firebirdプロジェクトの開発、開発者の移りかわりなどをきっちりとウォッチしはじめたんだ。僕はこのことを「強制された依存関係」と呼んだんだ。 そんな訳で、僕は自然とコードに興味を持つようになって、そこかしこで変更したり追加したりしたいなあと思うようになったんだ。僕はほとんど1年間にわたってコードをいじり倒して、firebird-develから有益な情報全てを学んだんだ。その時には、Dmitry Kuzmenkoが唯一のロシア人だった。一度全部に目を通したので、自分でもいろいろと出来るようになって、初めてのパッチをリリースしたんだ。それが始まりだったんだね。Cluaudio氏とMark氏、Ann氏にはとても感謝しているよ、出来の悪いコードだったのにとても暖かく迎えてくれたからね。これは本当に簡単な事じゃないと思うんだよ、どこへ行っても、いつでも新しいことに対してはみんな保守的だったからね。Claudioのアドバイスで、Alexander Peshkovに紹介されてdynamic SQLの最初のバージョンのサポートを手伝うことになったんだ(こいつは今ではEXECUTE STATEMENTとして知られているね)。幸運にも、僕らがやろうとしていたことは全てうまくいって、チームの中でのどうあるべきかについて侃々諤々(かんかんがくがく)の議論の結果が出たんだよね。

Marina Novikova: Firebird Foundationからの助成を受け取るというニュースについては、どうやって知ったのかな?

Dmitry Yemanov: FFについては知っていたし、その一番重要な仕事と目的についてはよく知っていたので、僕にとっては「ニュース」とは呼べなかったね。

Marina Novikova: これまでにどこか外国へ行ったことはある?

Dmitry Yemanov: いや、外国へは行ったことはないなぁ。以前のソビエト連邦共和国を別にするなら、トルコだけがそのうちリストに入るんじゃないかな。そのうちたくさん旅行をしたいなぁ。

Marina Novikova: Firebird Foundationのメンバーで会ったことのある人は誰と誰かな?

Dmitry Yemanov: おかしな話なんだけど、誰とも会ってないんだ。 僕はインターネットを通して仕事をしているだけなので、これってインターネットの悪い点だよね。出来れば、ヨーロッパのFirebirdカンファレンスに行って、みんなと会ってみたいなぁ。

Marina Novikova: カンファレンスには参加するの?カンファレンスには何を期待する?どんな報告に一番興味がある?

Dmitry Yemanov: もちろん、このカンファレンスには絶対参加したいよね。でも、まだ参加できるかどうかわからないんだ(「お仕事」の方の状況によりけりなんだよね)、でも万難を排して参加するつもりだよ。カンファレンスに期待することはたった一つ、2年以上にわたって知り合ってきた人々と、コミュニケーションを持つ機会だってことだね。それから、参加者に僕らのFB1.5の結果を報告して、今後のプランを話す絶好の機会だよね。

Marina Novikova: あなたの考えでは、現在のプロジェクトの中で何が一番難しい問題だと思う?

Dmitry Yemanov: 開発者として言えば、僕はバージョン2.0〜3.0の開発に対処しなくちゃならないだろうね。新しいODSはたくさんの変更が必要で、セキュリティを一新し、SSとCSの対立という問題を解決し、C++へのコードの移植を続けて、それ以外にもまだまだたくさん解決しなくちゃいけない問題があるんだ。プロジェクトの全てのモジュール上で作業して、人目に付かないところを全部手を入れて、ということはとっても大変なんだ。 プロジェクトの管理者としては、開発者としての希望や興味とプロジェクトの開発ロードマップとの間での妥協点を見つけなくちゃならない、開発のプロセスがアナーキーにならないようにしつつ、コード・ベースが混乱しないようにして、開発期間をきちんと管理していかないといけないよね。

Marina Novikova: プロジェクトの中で、あなたの最大の業績はなんになるのかな?それから人生においてはどう?

Dmitry Yemanov: 僕は、昨年の春に最初のリリース後にプロジェクトが沈滞してしまうのを防いだんだけど、それがそうかな。その時は、John Bellardoと僕だけがコード上での作業をしていて、新しいコード・ベース(firebird2)はまだ不安定でたくさんのバグがあったんだ。それらを修正することは大変困難で、同時に新機能を追加していたからなおさらだった。Johnが別の仕事を始めるのでプロジェクトを離れたときは、本当にびびったよ。幸運にも継続は力なりで、夏の終わり頃にはArno BrinkmanとNikolay Samofatovが参加してくれて、大いに助けてもらったよ。彼ら無しではFirebird 1.5は無かっただろうね。それから、他にも大勢の開発者がプロジェクトに参加して一緒に作業を進めてくれていて、みんなに感謝したいな。 人生における最大の功績は、まだこれからなんじゃないかな。

Marina Novikova: いつもEメールにすぐ返事をくれるよね。一日に最高どれくらいメールのやりとりをしたことがある?それは誰と?

Dmitry Yemanov: 仕事メールを除外すべきだと思うんだけどいい?そうでないと、とんでもなく莫大な数になっちゃうからね。 まじめに考えると、数えたことはないよね、でもとっても多くの時間を割いてるのは間違いない。本当にたくさん時間をかけてるね。僕のメールボックスを見てみよう、どれどれ、今日は22通のEメールを出してるなぁ。全部Firebirdに関するものばかりだ。大体平均してこんなものだと思うよ。

Marina Novikova: バグは再生するものだと信じている?

Dmitry Yemanov: 確かに、僕自身そのプロセスにどっぷりつかっているよ。

Marina Novikova: 新しいアイデアやインスピレーションをどこから得てるの?

Dmitry Yemanov: さっき、ビールと音楽の話をしたと思うんだけど、そうだよね?実際のところ、僕はそういうものをどこからでも得ているんだ、ちょっとリラックスして自分の注意を他のところへ向けたりしてね。僕はたくさんのアイデアやいい考えを持っていて、それは寝ているときだったり、眠りにつくときだったり、仕事の行き帰りや、休憩中に思いついたものなんだ。

Marina Novikova: えーとねディマ、どうしてWindows版のクラシックバージョンをリリースしたの?Jim StarkeyとAnnとその他大勢の人たちは、一度に二つのサーバーを分岐して開発するのはナンセンスだと考えているし、一般的に考えてもそのことが開発を遅らせるだろうし、人々を待ちくたびれさせてしまうんじゃないの?どうして、SuperServerをもっと良いモノにするだけじゃだめなの?

Dmitry Yemanov: この質問に対する答えはいくつかに分けて答えないといけないなぁ。 1)僕は彼らの意見にもちろん賛成なんだけど、統合されたアーキテクチャ(キャッシュを共有した「正しい」SSやCSのどちらであっても)は将来の課題だと思ってる、ただそれはすごく近い将来というわけではないんだ。恐らくそれまでにまだ1年以上の時間がかかると思う。そうだとすると人々は今どうするべきだろうか? 2)現在のClassi版はUNIXプラットフォーム向けになっているので、win32のユーザーはそのために困っているんじゃないだろうか?それに加えて、ここにはボーランドから引き継いだモノがあるので、問題無くwin32向けのClassic版を作成することが可能なんだ。もっと込み入っていたとしたら、多分僕はClassic版に取りかからなかったと思う。 3)ボーランドがInterBase 7でSMPのサポートを宣伝して、Yaffilが彼らのwin32向けClassic版を作成した、僕らとしては取り組まざるを得ない状況になったんだ。特に、僕らはパワフルなマルチユーザ・アプリケーションをSMPマシン上で利用することについて話し合っていたんでね。 僕としてはwin32向けのClassic版は過渡的なソリューションだと思っているので、まあこれで満足するクライアントは少ないだろうと思っているし、両方のタイプのアーキテクチャーを全てのプラットフォームでテストする機会を得て、今後のサーバー開発の情報を得ることが出来ればいいなと思ってるんだ。 「正しい」SuperServerのためには、決してつまらない作業というわけではないと思うよ。IB 7.0を見た限りでは、特に何の刺激も受けなかった。強いて言えば、Charlie Caroは素晴らしいコーダーでアーキテクトだっていうことかな。そういう意味では、何でもそうだけど、外から見てるほど簡単じゃないんだよね。

Marina Novikova: InterBase 6のオープンソース版についてはどう思う?それってボーランドの手違いだったのかな?

Dmitry Yemanov: それについてはイエスだね。ボーランドは、製品の開発戦略を選択して、それに従ってきちんと仕事をすることができないということを、まあやって見せたんだよね。InterBase部門の経営方針を変更して、VARパートナー(訳注:付加価値再販業者の意、代理店のことですね)とこっそりとした陰謀を行って、漠然とした「オープンソース思想」を持ち出して、それで結局ユーザーの信頼を得られなかったんだ。今となっては、あらゆる事が良い方へ変わったんだけど、その産みの痛みが残ってしまっているんだよ。それに加えて、ボーランドはかなりの数のユーザーを失って、それらのユーザーはFirebirdとYaffilを代わりに使っている訳なんだ。 後の残りは全部幸運だったとしか言いようがないね、幸運がIB/FB/YAファミリー全部の開発を早めてくれたんだなぁ。

Marina Novikova: Firebirdの将来についてどう考えてるの?

Dmitry Yemanov: もちろん考えてるよ。まず絶対に成功を収めるだろうということ。僕は思うんだけど(自分がオプティミストだって言わなかったっけ?)ここ数年に起きたことから考えて、プロジェクトはより強固になっているし、ユーザーはその結果を見てるよね。これは僕にとってとてもハッピーなことだね。僕らはいろんな問題に取り組んでいるにはちがいないけど、かならず最後までやり遂げると思っているよ。

Marina Novikova: Firebirdをエンド・ユーザー向けの製品にしようと思ってるのかしら?私の言っている意味は、パッケージにサーバーとドキュメントとクライアント・アプリケーションと管理ツール、その他を全部含めるつもりなのかなということなんだけど。さもなければ、Firebirdを普通のオープンソース・プロジェクトと同程度のものにしておこうということなのかしら、それっていうのはユーザーがあらゆる必要なことを自分達自身で解決しなくてはならないというようなモノってことなんだけど?

Dmitry Yemanov: 僕らは前者のようになることを望んでいるんだけど、現在の政治状況から全ての対応するドキュメントとプログラムを全てオープン/フリーにする必要があるんだよね・・・。それらが形作られて作成されたとしたらね、まあやってみようとは思ってる。問題があるとしたら、とてもたくさんのプログラムがIB/FB/YA向けにありすぎて、どれかを一つ選んでパッケージに組み込むのが難しいということだろうね。そんなわけで、近い将来に僕らはサード・パーティの製品についてその概要とリンクを示すリストだけでもパッケージに含めたいと思ってるんだ。

Marina Novikova: もしあなたがボーランドのInterBaseセクションにいたとしたら、最初に何をやりたいと思う?

Dmitry Yemanov: すぐに辞めてFBのチームに合流するよ。

Marina Novikova: どうしてYaffilに行かなかったの?

Dmitry Yemanov: それは良い質問だね。最初にFBプロジェクトのメンバーになって、Olegが新しいクローンを作ろうと思っているとはわからなかったんだ。Yaffilプロジェクトが独立して、活発に活動を開始した後で、僕らはとても困難な時期を迎えたんだ。僕にもプライドや意地もあったので、自分自身で結果を出したかったんだ、プロジェクトが危機を乗り越えたとしても、あるいは破綻してしまったとしてもね。状況が悪い方へいってしまっていたら、今頃僕はYaffilに関わっていただろうね。でも、僕はFirebirdを去らなかったし、失敗もたくさんあったけど、それと同じくらいたくさんの努力をしてきんだ。

Marina Novikova: FB1.5の新しいメモリマネージャーは1.0のモノより良くなっていると考えてる?それから、どうしてそれを変更しようと思ったの?

Dmitry Yemanov: 間違いなく良くなっているよ、テストの結果もそう出ているしね。そもそもそれが理由で、僕らはメモリマネージャーを変更したんだ。 以前のメモリマネージャーは、すでに多くのブロックを配置した後では、新しく解放されたブロックの配置に関して制限があったんだ。標準的な例を挙げると、複雑なデータベースのリストアや、データに対する多数の操作、その他で発生してしまうんだ。今、僕らはこういった問題を解決してパフォーマンスを向上させることに成功したんだ。

Marina Novikova: 将来の優先事項はどうなってるのかな?最初に何を変更/作成したいと思ってる?

Dmitry Yemanov: そのリストは膨大なんだよ、最低でも1ページになっちゃうよ。 僕らはすでに将来のプランを作成しているんだけど(それはカンファレンスの参加者には手渡せるようになっているんだけど)、その中に大事なことは全部組み込まれているんだよ。要するに、既にわかっている問題を解決するだけで十分なんだ。 最後になるけど、Firebirdを選んで使ってくれているInterBase Worldのコミュニティの皆さんを決してがっかりさせたりしないように頑張りますよ!