Delphi 発売前夜
IT系のアドベントカレンダー企画が色々開催されています。毎年興味はありつつも手を出したことがなかったのですが、「Delphi Advent Calendar 2012」を見たら、あまり技術的でない話を書いている人がいたので、私も投稿してみることにしました。ただし、最近の Delphi の動向には疎いので、最初のバージョンの頃の思い出話です。発売前の話だけでけっこうなボリュームになってしまったので「発売前夜」というタイトルにしましたが、決して発売日の前の晩にどこで飲み歩いていたかという類の話ではありません(私は下戸です)。本来なら、社内秘にかかわる部分もあるような気はしますが、関係者の人は黙認してくれると期待します^_^; 内容は、少しだけ脚色しています。
■Delphi とは
Delphi をご存じない方のために、簡単にご説明します(といっても、ご存じない方にとってはこのエントリそのものが興味を持ちにくい話だと思いますが)。Delphi は、現エンバカデロ・テクノロジーズ(旧ボーランド→CodeGear)が販売しているビジュアル開発ツールです。最初のバージョンは、Windows 3.1 用に作られた16ビット版で、英語版は1995年3月に、日本語版は1995年9月に発売されました。
当時は、「RAD(Rapid Application Development)」という開発手法がもてはやされており、よく知られる Visual Basic をはじめ、Gupta や SQL Windows や PowerBuilder といったツールが色々出ていました。また、この年の11月には32bit版の Windows 95 が発売されており、16ビット開発ツールとしては最後発といってよいものでした。RAD(あるいはビジュアル開発)の流行もあり、さまざまな雑誌に取り上げていただいただけでなく、多数の関連書籍も出していただきました。当時、製品を使ってくださった方々には感謝の限りです。
技術的な話になりますが、Delphi は非常にユニークな仕組みを持っていました。開発時に実際にライブラリを動かせるようにする一方で(DLL 化したものを使う)、最終的には実行ファイルに静的リンクしてしまうことができる(このときはLIBを使い、DLLを使わない)というものです。今では CPU も随分速くなり、いわゆる軽量言語と呼ばれるインタプリタ方式の言語でも十分使い物になっていますが、当時は今以上に処理速度が重視されていました。
Delphi は、そのユニークな仕組みによって「ビジュアル開発ツールなのに速い」という特長を実現していました。さらに、当時現役だったフロッピーディスクに「できあがった実行ファイル(.exe)をコピーするだけで動かせる」という手軽さもありました。今では、.NET Framework が JIT(Just In-Time)コンパイラによって生産性と速度を両立していますし、実際、たいていの業務アプリケーションの開発には .NET Framework を使うのが生産性が高いと私は考えています。それでも実行ファイルにライブラリを静的にリンクする機能はありません。
Delphi が使うプログラミング言語は、Pascal にオブジェクト指向の拡張を施したものです。後に Delphi 言語と呼ぶようになりましたが、当時は Object Pascal と呼んでいました。もともとボーランドは Turbo Pascal という言語製品がその始まりであり、成功の源でもあります。ただ、Pascal は一部には根強い人気はあったものの、一般的なアプリケーション開発では C や C++、あるいは Visual Basic や COBOL などに比べてマイナーな地位に甘んじていたと思います。私自身、ボーランドに入社したのは Turbo C が契機であり、Pascal は“好きな言語”とは言い難いものでした。
ボーランド本社は、当時、毎年 Borland Conference(BorCon)という技術者イベントを開催していました。私は参加しなかったのですが、1992年の BorCon に参加した方の一人が、Pascal のセッションに参加したときのことを教えてくれました。やはり人気があったのは C++ 製品で、Pascal のセッションにはほんの2~30人程度の参加者しかいなかったそうです。
そのセッションで、Pascal 製品の開発を担当していた Anders Hejlsberg が「Visual Basic みたいな Pascal ツールがあったら興味はあるかい?」と訪ねていたそうです。正直なところ、その話を聞いても「Pascal 製品の人気がなくて、シェアの高い Visual Basic のまねをするつもりなのかな」程度にしか思っていませんでした。しかし、その当時から前述の仕組みを考えていたのでしょう。この仕組みは、とにかくコンパイラ好きである私を魅了することになります。
Anders Hejlsberg は、後にマイクロソフトに移籍し、現在は C# と .NET Framework の設計・開発に携わっています。彼は、私にとっての「伝説のプログラマー」のひとりでもあります。
■成功の理由
Delphi は、Visual Basic のシェアを打ち負かすとまではいかなかったものの、日本でも成功を収めました。当時、最初のバージョンが広く受け入れられた理由はいくつかありました。まず、1994年の COMDEX というイベントで『BYTE』誌の Best Of COMDEX を受賞したことが挙げられます。前述のとおり、Delphi が発売されたのは1995年で、この時点ではまだベータ版が一部の関係者に出回っている程度だったのですが、その人たちから絶賛され、発売前の製品にも関わらず受賞したのです。この話題は当然日本にも伝わり、多くの人の興味を引くことになりました。
Best Of COMDEX を受賞したことは、思わぬ副作用もありました。元々「Delphi」というのは社内的なコードネームで、最終的な製品には別の名前(※)を付ける予定でした。由来である Delphi(デルポイ)とは、ギリシャで神託の告げられた場所のことで、神託= Oracle です。つまり、「Oracle データベース用のアプリケーションを開発しやすい」ということが意図されたコードネームでした。そのコードネームが発売前に名前が広く知れ渡ったこと(および予定されていた製品名の商標に対する懸念)から、そのまま製品名として採用されることになりました。ちなみに、Delphi の広告には、ギリシャ神話にちなんでアメリカではアテナ(女性)像がよく使われていましたが、日本の広告で使ったのはアポロン(男性)像です。
※wikipedia には、その名前は AppBuilder と書いてあるのですが、実際には ApplicationBuilder だった覚えがあります(wikipedia を書き換えるほど正確な記憶ではありません)。Novell の製品名に類似するという懸念があったのは、そのとおりです。
2つめの理由は、(当時はまだ)『BYTE』誌と提携していた『日経バイト』誌で特集が組まれたことです。たしか英語版が発売された頃の1995年3月号で20ページほどの詳細な記事が掲載されました。これは、ボーランドの Pascal 製品としては珍しいことで、この特集によって、多くの人が Delphi の存在を知ることになり問い合わせも増えました。実際に英語版を入手して使い始めた人もいましたし、私自身、実際に使ってみるようになったのもこの頃です。
値付けも理由に挙げてよいでしょう。英語版の Delphi 1.0 は495ドルという値段で発売されましたが、日本語版は29,800円でした。ただし、最初の日本語版には、英語版に付属するデータベース用のツールや Local InterBase という RDBMS などは含まれていませんでした。当時のボーランドは、日本語版の製品は英語版が完成してから日本語化するという手順で開発していましたが、Delphi は、それまでの Pascal 製品のバージョンアップとは異なり、全面的な書き換えが必要であり相当の時間がかかることが予想されました。遅れるといううわさがあったとは言え、Windows 95 の発売も間近に迫っており、32bit版の Windows が発売されてから、16bit版の開発ツールを出すというのは出遅れ感が否めません。周辺ツールの日本語化を待っていたら、そのような事態になることは容易に想像できました。
当時のボーランド(日本オフィス)では500ドル程度のものなら68,000円くらいに設定するのが普通でしたが、Turbo Pascal 6.0 や Turbo Pascal for Windows といった Pascal 製品は、Turbo C++ や Borland C++ に比べても売れ行きが鈍いのも事実でした。実際、Borland Pascal for Windows という製品は日本語化が見送られました。ですから、Pascal をベースにした Delphi は、日本語化してもあまり売れないのではないかという不安がありました。しかも、従来の Pascal 製品とは言語レベルでしか互換性がなく、既存ユーザーへのアピールもしにくいと考えられていました。
もし、高めの値付けをして広まらなかったら、後々苦労しかねないという思いがありました。当時は技術サポートも無料という時代でしたが、サポート担当として入社した私にとって、売れない製品のサポートが大変なことは明らかでした。そこで「周辺ツールの日本語化をしないのだから」という理屈で29,800円という価格に決めました(当時は、日本サイドでの裁量が大きかったということもあります)。もちろん「大量に売りたい」という気持ちはありましたが、どちらかというと“弱気の値付け”でした(周辺ツールを含めた製品は、後に Delphi and Database Tools という名前で68,000円で売り出しました)。
今では Visual Studio の Express Edition をはじめ、無料で利用できる実用レベルの開発ツールも多くありますが、冒頭に挙げた当時の競合製品は、たいてい数十万という代物で、29,800円という値段は圧倒的な安さをアピールできました。出版関係者からも「頑張って5万円を切るくらいで出してくれないかと思っていたので驚いた」と言われたくらいでした。
結果として、前述のユニークな特長もあり、Pascal 言語であることや周辺ツールが揃っていないことは大きなマイナスになりませんでした。もともと Pascal は分かりやすい言語ですし、アプリケーション開発のために実用的な拡張が施されていました。もちろん、C++ 版を出してくれという要望は2年後に C++Builder が登場するまで継続的に送られてきましたが、C++ 開発者だった人を含め、新たな開発者を呼び込むことにも成功しました。結果として、この値付けは成功の大きな要因になったと思います。
また、競合製品という意味では Visual Basic 3.0 が日本語化されなかったということも理由として挙げられます。当時は、「ビジュアル開発ツールといえば Visual Basic」と言えるほど圧倒的な人気を誇っていましたが、データベースアプリケーションをビジュアルに開発できる機能を実現したバージョン3.0は、その次のバージョン4.0の登場が近いという理由から日本語化されなかったのです。Delphi は、最初のバージョンからデータベースの機能を含むビジュアル開発を実現していましたが、Visual Basic は 3.0 の日本語化が見送られたことで、Windows 95 の発売後に32bit版の Visual Basic 4.0 が登場するまで「空白期間」ができてしまったのです。
Delphi の成功は、このようなさまざまな要因が折り重なってもたらされました。
■日本語化
Delphi の日本語化についても、少し触れておきます。私は、Delphi の最初のバージョン(1.0)のプロダクトマネージャ(製品担当者)ではあるのですが、細かいことを言えば“初代”ではありません。当時、私は C++ 製品を担当しており、Delphi は言語製品というよりデータベース関連製品という扱いになっていたため別の人が担当していました。その初代担当者が退職してしまったために、私にお鉢がまわってきたという事情がありました。
言語製品の担当として Pascal に関する知識はあっても、実のところ Delphi がどんなものかはわかっていませんでした。それでも、私が担当になった時期は、ちょうど英語版が発売された頃で、ちゃんとした英文のマニュアルがありました。そこで製品をさわりつつマニュアル(ユーザーズガイド)を自分で翻訳してみることにしました。もちろん、製品マニュアルの日本語化については、ちゃんと翻訳を担当する部署があり、翻訳のスケジュールも決まっていたのですが、完成には時間がかかりそうでした。それで毎日帰宅すると自分でマニュアルを10ページくらいずつ翻訳しながら製品を使ってみるという日々が続きました。これが続けられたのは、前述のように Delphi ならではのユニークな仕組みがあり、斬新な開発の方法が書かれていて楽しかったからです。
一般論として、技術文書の翻訳では新しい技術や仕組みをどう訳すかということが問題になることがあります。たとえば、翻訳者によっては英文の解釈として間違っているとは言えなくても、技術的に(あるいは製品を利用する上で)不適切な翻訳になってしまうということもあります。私は自分で使いながら翻訳していますから、(訳文の適切さはともかく)技術的にはほぼ正しく訳されているはずです。結局、私の翻訳したものは、マニュアルの翻訳部門の参考資料として使われることになりました。ですから、Delphi 1.0 のユーザーズガイドには私の翻訳の“成分”が含まれていると思ってください。この暫定翻訳版は、Delphi 1.0 ベータ版で行った「早期体験プログラム」という企画でも使われました。
日本語化に際しては、もうひとつ面白い話があります。一般に、ソフトウェア製品を売るために必要な広告やカタログ、ダイレクトメールといったものには「製品の使用画面」が必要です。ここに英語版の画面をそのまま使うか、日本語化した画面を使うかでは“日本語版としての完成度”の印象がずいぶん変わります。当然、完全に日本語化した状態の画面が使いたいところです。
とはいえ、製品の日本語化は、必ずしもメニューなどのユーザーインターフェイスから行われていくというものではありません。つまり、つまり、製品の日本語化が終わる前に日本語化した画面を用意しなければならないということです。そこで、カタログのために「まだ存在しない日本語版の画面」をイメージ編集ソフトで“作り出す”ということがありました。英語版を日本語 Windows の上で動かし、その画面を取り込んで英語で表示されているメニューなどを日本語に置き換えるという作業です。
さらに細かいことですが、Windows 3.1 や Windows 9x の時代はスクロールバーの部分がディザパターン(格子上に並べらて表現された中間色)で塗りつぶされており、そのままカタログに使うとモアレ(縞模様)ができてしまいました。そこで、スクロールバーだけをその中間色に相当する単一色で塗りなおすということもしていました。当時作っていたガイドブックを見ると、うっかり塗り忘れてモアレになっているものがあります。
昨今のソフトウェア開発では、英語版を日本語化するのではなく、最初から多国語対応するのが一般化しており、このような苦労もなくなっています。(製品本体だけでなく)当時のカタログやダイレクトメールは、それなりの苦労の産物だったのです。
■発表会
C++ 製品を担当していた頃は、プレスリリースを郵送するだけで発表会というものを開いていませんでした。Delphi のときにはじめて記者発表会を担当することになりました。それまでもイベントなどで製品を紹介することはありましたし、どちらかというと得意な方でしたが、いつもと違う参加者を相手にすることで、緊張ぎみだったと思います。
もともと早口で説明してしまう傾向はあるのですが、このときは、いつにもまして早口になってしまい、本来1時間ほどかけて説明する予定だったのに、40分ほどで終わってしまいました。時間があれば余分に説明する材料も用意しておらず、そのまま締めくくりの部長にバトンタッチしようとしたら、部長がトイレに入ったまま、なかなか出てこなかったのは苦い思い出です。
それ以前にも各編集部をまわって製品を説明しながら「夏のうちに出します」と言っていたのですが、実際の発売日は9月末でした。その年は9月半ばくらいまでは暑い日が続いていたので「まだ夏ですよね」と言い訳しようと思っていたら、下旬になって急に涼しくなった覚えがあります。
記者発表会の後にはユーザー向けのイベントもありました。Delphi 発売前に行われたイベントは、明治記念館で行われ、約1000人もの開発者が参加してくださいました。たしか、開発中の 32ビット版 Delphi(Delphi 2.0)を紹介するときに、32bit Windows の特徴であるマルチスレッドプログラミングを見せようとして、スレッドを止めるコードを書かずに説明を終えてしまったのは忘れられません。
■おわりに
Delphi は、多くの“ファン”にも支えられていました。Delphi が好きになりすぎて自作の歌を送ってこられた方もいました。技術的なコミュニティでは、多くの方にご支援いただきました。実は、今やっている仕事も Delphi 時代のユーザーの方のご紹介だったりします(Delphi を使っているわけじゃないのですが^_^;)。
Delphi について、私自身で3冊の書籍を出しました(バージョン1から3まで)。なんだか、amazon でけっこうな値段になっている「Delphi 3 Q&A 150選」ですが(なぜ?)、こちらのサイトで丸ごと公開しています。あまり今のバージョンでは意味がないと思いますが、よかったらご覧ください。本当は、前の版の方がかわいいイラストが入っているのですが、それはまたの機会にでも公開しようと思います。