過去も振り返ってみよう

マイクロソフト畠山です。

東京はいよいよ梅雨入り宣言したとのことです。これから約1ヵ月に渡り梅雨の季節になるわけですが、傘を持ち歩くことと、変な汗をかくことで、比較的すごしづらい時期になりますね。皆さんも体調にはくれぐれもご注意ください。

さて、今回は、「過去」にフォーカスを当てます。

皆さんはIT、コンピュータに関わってどれくらいの期間になりますか?私の場合は10年弱でしょうか。
パソコンを初めて買ったのは、NEC様のCanbe。電源ケーブル1本させば、Windows 3.1が起動するんです。大学のゼミのレポート作成用ですね。
社会人になって、SIerに入りました。半分が孫請け独立系SIerで、プログラムを書いたり、設計書を作ったり、場合によっては要件定義をさせてもらったり。でも、いきなりVisual Basic 5.0の仕事でした。もう、ActiveXが存在していて、Active Server Pages の開発を隣のチームでやっていました。(なぜこんなに技術名に「Active」がついているんでしょうね。それは調査したうえで・・・) DBはOracle 7.1だったかな?
つまり、オープン系のクライアント/サーバーのアーキテクチャの時代しか知らないのです。当時は、「なんでこんなアーキテクチャなんだろう」とも疑問にさえ思わないまま、「へぇ。こうやってシステムって作るんだねぇ」とまるで他人事のように自分に割り当てられたタスクと淡々とこなしていました。

その後Webが出てきました。
Webベースの技術云々は置いておいて、それが徐々に企業システムでも導入されましたよね。アーキテクチャはWebばっかり。画面はHTMLが基本。それにActiveXコントロール。Flashでさえ、ActiveXコントロールなんですよーーー。IEの上では。その時に、盛んにベンダーが、クライアント/サーバー時代の弊害を語っていたものです。

Javaの登場がその前にありましたね。
なんで、中間コードをいまさらインタープリタでコンパイル、実行するんですかーーー。とエンジニア魂を逆なでするようなアーキテクチャでしたが(笑)、これもいまや企業システム構築の標準ですよね。皆さん、重要システムはJavaばっかりで開発していませんか?

以前「本質論」に触れました。実はこれ、歴史をたどっていけば、一般論については考察できることに気がつきました。

Webの3層アーキテクチャは、

  • アプリケーション配布の人・モノ・カネのコストを削減 (以前はインストーラー作って、DLLと格闘して、レジストリと格闘して・・・)
  • 1サーバーマルチスレッド対応の軽量アプリケーションサーバーによる、大量ユーザー (以前は、DBのCAL分しかアクセスさせず、DBに1ユーザーあたりのメモリ容量を計算し、大量アクセスが必要になれば、どうしたら良いの?って感じで)
  • 横に同じサーバーを置くことでのスケールアウトを可能に (以前は強力なサーバーが必要だった)
  • オープンソースによる初期ソフトウェアライセンスを削減 (以前は商用製品しかなく)

と様々なメリットがあったわけです。他にもあるでしょう。
そして「アプリケーション サーバー」という役割を、ソフトウェアアーキテクチャから「切り出した」わけです。

Javaは

  • 仮想マシン(JRE)の採用により、マルチプラットフォームを実現。"wright once, run anywhere"の思想。 (これまでのコンパイラは、CPU+OSセットでコンパイルが基本でしたね)
  • より純粋に近いオブジェクト指向の採用 (C++が、Cの言語仕様を残していたり、Visual Basicは、基本は構造型言語であるBasicの延長線上にとどまっていましたね)
  • 複数ベンダーによる、実行・開発環境の提供。現在では、それさえも、コミッティーだったり、オープンソ-ス化して、そのメリットを享受しています (これまでは、ベンダーかえりゃ、以前の知識がどこまで使えたか・・・同じCでもUNIX CとWindows Cとでは、ライブラリが恐ろしく違いますから・・・)

と様々なメリットがあったわけです。当然、他にもあるでしょう。

実際に、何かをシステム化して業務効率やコスト削減など図ろう!となった場合は「何を目的として」という本質論について本当は議論すべきだと思っています。それが動機につながります。技術の選択という意味でもそうですね。どうして、Webのアーキテクチャにするんですか?どうしてJavaを採用するんですか?どうしてWindowsを採用するんですか?どうしてOracleなんですか?
様々なその場の理由で技術が選択されるわけですが、私はエンジニアとして「技術」の視点からも御説明したいと思っています。

その時に、過去を振り返ると、ヒントがありますよね・・・
以前とある人と「.NET何がいいんだ」という話題になりましたが、「VB/MFCを知らない人にはわかりづらいですよね」とおっしゃっていました。まさに、これ本質的に近づいていると思いませんか?

.NET Framework 3.0やSilverlightもいいのですが、お給料をもらって、企業活動の根幹を支える皆さんですから、なぜ、その技術なのか?それを考える上でも過去の書籍/資料に目を向けるのも一つですよね。

Webをやっている人にお願いしたいのは、データの量が増え続けるだけなのは避けたいのはわかりますが、それって人類の英知である「言葉」を蓄積し始めた、貴重なデータを「削除」しちゃっていますよね・・・できたら、「公開された」Webページは、削除せずに、リンクも含めて残してもらいたいものです。

2007年6月14日
マイクロソフト
畠山大有

コメントを残す