インターシステムズの基礎技術
先日、平行進化というタイトルの記事でも述べた様に、インターシステムズの製品ポートフォリオも複雑になってきました。
これは、世の中の変化への対応という面である意味仕方ないとは思いますが、社員である私でさえ、なかなか全体をキャッチアップすることが難しくなりつつあります。
ポートフォリオの変化は、新たに自社開発するものと、他社を買収することによって、製品として取り込まれるもの、他社の製品を買収するパターンなど様々ですが、最近ますますそのスピードが上がってきているような感じを受けます。
ただ、表面上は、色々な変化を見せてきていますが、そのめまぐるしく変わる部分ばかりに目を奪われると本質を失うかもしれないので、このあたりでインターシステムズの技術の基本について整理しておこうと思いました。
そう思ったのは、表面的には変わってきているけれども、やっぱりこれは変わっていないなあと思う部分があるからです。
私見ですが、インターシステムズのソフトウェア技術は、最終的には2つの要素に集約されると思います。
1つは、永続データマネージャー(多次元データエンジンと言うことのほうが多いですが、より一般的な理解を得られるようにあえて言葉を変えています。)を内蔵したプログラミング言語
そして2つ目は、そのプログラミング言語を基礎としたコードジェネレーション技術
です。
結局は、このプラットフォーム上では、そのプログラム言語で定められた文法に則ったプログラムコードを実行することで物事が進んでいきます。
昔は、全てのコードを人間が手を使って作成していく必要がありましたが、ある時期からコードジェネレータを使って、人間の代わりにこのシステム自体がコードを自動生成することもできるようになりました。
それは、インターシステムズのデータベース技術にSQLでアクセスする機能を追加する時に使われ始めました。
つまり、このプラットフォームが内包するプリミティブな言語シンタックスよりはずっと抽象度の高いSQLという概念定義からこのプラットフォーム上でそれを実現するための粒度の低いコードを自動生成するしくみです。
これは、非常にうまくいったので、その後、様々なオブジェクトインタフェースを実現するために応用されました。
このコードジェネレーション技術を使うことにより、何かをまねする技術を習得できたのではないかと思います。
今では、インターシステムズのプラットフォームで動く様々なコードは、RDBのふりをしたり、Javaのオブジェクトのふりをしたり、XMLのDOMオブジェクトのふりをしたり様々な形に変化することができます。 生物のアナロジーで言えば、擬態という言葉が一番近いかなと思います。
そして、このシンプルな2つの原則から様々な多様性を生む様は、これも生物のアナロジーで言えば、DNAの4つのコードと2重らせんに例えられるかなと思います。(これは、少し強引すぎますが。。。)