未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

仕様と実装

john doe 『”国際化機能についてはいち早くDECのRdbが実装” only a tiny little fraction of it, to be precise.”仕様の制定にあたってはRdbでの実装の経験が生かされた” where? would give me an example? timing wise, it’s impossible. ”Oracle 8の国際化” correct me if i’m wrong. racle had already established a pretty good i18n arch. by/before oracle7.』

というようなコメントを頂きありがとうございます。

わたしの記憶の許す限りSQLにおける国際化の機能をどう開発していったかというのを自分の半径数メートルの経験から記してみたいと思う。もちろんわたしの印象と180度ことなる印象を持つ方が居るだろうという事は否定しない。
80年代の話である。まだソフトウェアの国際化という概念もなかった時代である。国際化の概念が仮にあったとしても業界人の共通の認識がなかった時代である。当時20代のY青年がここでの登場人物である。Y青年、外資系のコンピュータベンダーに就職した。IBMにつぐ世界第2位のコンピュータベンダーである。その会社仮にD社とする、は日本市場に参入するために自社ソフトウェアの日本語化が必須の作業であった。新卒のY青年はとりあえづそんな感じのプロジェクトに配属された。Y青年はD社の研究開発センターはまがりなりにも世界第2位のコンピュータベンダーでもあるし、その当時流行っていた人工知能いわゆるAIってやつにコミットしているD社であるから何かかっこいいプロジェクトに配属されるのではと秘かに思っていた。配属された最初のプロジェクトはCOBOLの日本語化である。皆さんCOBOLってしっていますか?プログラミング言語っすよ。まあ、そーゆーもんである。
もうちっと色気のあるプロジェクトに配属されたかったなあというのが正直なところである。
Y青年はコンパイラーの作り方を一から学びD社の言語プロセッサー開発コミュニティのなかにずかずかとのりこんでいった。D社のミニコンピュータにVAXというのがあったのだけどその開発チーム、言語プロセッサを作るチーム、OS(VMSという)を作るチーム、それぞれ独特のコミュニティを形成していたが、その中に躊躇無く飛び込んでいった。それを許す空気がD社内にはあった。
そーゆー時代、日本にいるチームは苦労を重ねていた。米国で開発されるソフトウェアの作りがまったく日本語のみならづ英語以外の言語について配慮が無くて現場で展開する度にそれが問題となった。日本人から見ると欧米人というくくりは西洋人は皆アルファベットを利用して英語を話すと理解しているが実像はインド人、中国人、等々世界中の人間が右往左往しているのが現状である。まあいづれにせよ日本語化に苦労を重ねていた。
当時のD社には、それぞれにソフトウェア製品の当事者がいて彼らが実装のイニシアティブをとっていた。
そーゆー時代にSQLの標準は開発された。
国際標準を開発する場合、大きくわけて二つの立場がある。一つはすでに実装が存在し、その実装にある意味でオスミツキをあたえるという意味で標準を開発すると言う立場と、もう一つは理想的な標準を作り実装はそのあとでするという立場である。後者の場合、仕様は徹底的に機能の直行性、完全性、などに重きをおかれる。ある機能を定義する時にどのようなユーザーがどのような場合にその機能を必要とするかどうかという議論とは別にXXXXという機能を追加するべきかしないべきか、するとしたらどのような実装になるかならないかと言う議論である。
当時1980年代後半はまさにSQL標準を委員会で議論していた時代である。D社の場合、後ろに開発部隊としてRdbの開発チームがいたので、実装についていろいろ意見をいう部隊がいろいろフィードバックをしたのである。
仕様と実装はいろいろ違うのだけどその説明をする前に疲れてしまったので今日はおしまい。