IT 革命と私――WWW と Tcl の衝撃
私が学生時代に IT 関係者の卵として衝撃を受けた事件が二つあった。
一つは「IT 革命」そのものといっていい WWW (ワールドワイドウェブ、俗にいうインターネット)の普及。
もう一つは、今では若干下火になってしまったが、Tcl という組み込みを前提としたコマンド言語の登場である。
|
私のようなすでに IT 関係者だったものにとって、InternetExplorer や Netscape の前身である NCSA Mosaic は、《先の記事》ではないが、「その分野の専門家が容易に思い付くことができる」ような物であった。
画像と文を表示するためのある種のスクリプト言語ならば、エロゲーにすら搭載されていたし、文や画像の流通もインターネットを通じて行うことはできた。現在も使われている HTML は 1986 年に ISO が標準規格としてまとめた SGML を元にしている。
IT 関係者(当時は「IT」などという用語はなかった)にとって Mosaic のようなものはやる気さえあればできるだろうし、いずれ必要となるものだという認識は広くあっただろうと思う。
しかし、それを作る手間は他の X-Window のソフトを作るよりもかなり多くなる割に、上記のような認識であるから「研究成果」としては認められにくい。さらにインターネットは研究目的で用いるためのもので高価なインフラであり、高々お遊びに過ぎない WWW のデータで帯域を奪うことはタブーとすら思われた。
実際、私のまわりでは Mosaic を見て「おもしろいね。けど、これに多くのデータを使ったらインターネット本来の目的であるような送信ができなくなるかもしれないからホドホドにね」という反応があったように記憶している。
そんな私だったからこそ、WWW の登場には大した衝撃も受けなかったが、その分、その後の普及に大きな衝撃を受けることになる。
私は感じた。私が閉じられた社会の中でタブーと感じていたものは、特定の状況下における縛りでしかなく、タブーをやぶってでも外の社会の需要を開拓できるなら、「我々」があたり前と思っている技術の中に大きな可能性があるのかもしれない。と。
|
先の WWW と違って Tcl の革新性の感じ方は IT 関係者でもかなり温度差があるだろう。
私は当時の IT 関係者らしく普通に TeX で文章を書き、Perl やシェルスクリプトを用いて管理用のプログラムを書き、C で計算用や実験用の実装をする一方、当時の C++ のへたれ具合や Smalltalk の重さに嘆き、研究のテーマとしても《なぜ記号論理学から社会科学を目指すようになったのか》で書いたようにオブジェクト指向に高い関心を寄せていた。
当時はまだオブジェクト指向の概念が確立しておらず、(といっても私は今のオブジェクト指向のどこが確立した概念なのかサッパリわからないが、)クラスからオブジェクトを生成するほかに、代表となるオブジェクトからオブジェクトをコピーによって生成するというものもオブジェクト指向の枠内で考えられていた。
Tcl はすべてが「コマンド」の形を取ることから、後者の意味でのオブジェクト指向に近い物が作れるかもしれないと興味を持ったのだが、衝撃を受けたのはその「コマンド」言語の体系ではない。
Tcl には他のアプリケーションの一部としてマクロ言語のように扱われることを意図した組み込み用言語としての特徴を持つ。他の組み込み用言語は、従来からのアプリケーションを殺さないように、それでいてマシンリソースをあまり食わないようにするため、C などと連携を強めようとする。そのため、それを使うのはよほどその言語に精通していなければならず、ドキュメントを読むよりもソースを読めという雰囲気だった。
しかし、Tcl はその部分を大幅に削り、「組み込み言語」として使いたい層からはあえて難くせをつけられるぐらい単純にするかわりに、あたかも、その組み込み用インターフェイスが言語の一部であるかのように、ユーザーマニュアルにその説明を載せてきたのだ。
これはオブジェクトからオブジェクトを生成するオブジェクト指向を念頭に置いて Tcl を見た私には衝撃だった。
オブジェクト指向における private などを使ったモジュール管理機構は未来の自分への戒めとしては有効かもしれないが、C のシステム関数を個人が使うことができるなどの抜け道がいろいろある以上、複数人での開発の場合むしろプログラミングを繁雑にし、開発者間のセッション数が増えるだけに終ってしまうのではないか、という危惧があった。
Tcl のメッセージは明白だった。「標準クラス」のようなオブジェクトはクラス用の言語たる C などで書き、あくまでユーザーにはユーザーインターフェイス言語としての「コマンド」を使わせる。そして、C で書く以上「クラス」には抽象論ではない明らかな速度的利点があり、コンパイルというフェーズを必要とすることで、実質的な壁を作る。さらにC への組み込み言語ではなく、C を説明言語として Tcl を C 上で書いている感覚にさせる。
Tcl の前では、Smalltalk がいう「システムとしてオブジェクト指向」というのが、ただ言語を GUI に載せただけにすぎないように見える。オブジェクト指向のシステムというのは、言語にすべてが統合されていることが良いとは限らず、「言語」の使い方がオブジェクト指向になるべきであり、そこでは具体的な利点がプログラミングの障壁となければならないのだ。と私は思った。
一般に与える物は、単純で、それがタブーに満ちた物であったとしても最大限自由に使っても大丈夫にするべきである。一方、ルール変更時には自由なシステムの中でむしろ抑制的にシステムを使ってやるのがシステムとしては「美し」く、そのルールの変更が次の作成者にとっても低コストで出来るように使用時に負荷がかかっても一般に与えた物とほとんど同じ言葉を使うべきだ。 と。
コデラノブログで《ITmedia:それはなぜですか》という記事を読んだ。私はおそらく小寺氏よりは少し年齢は下だが同じ世代に属すると思う。私も「なぜ」と思うことは未だに多いが、もう三十路を過ぎて逆に「なぜ」と問われるトシにある。
私自身の「なぜ」を考えてみたとき、私に大きな影響を与えた IT 革命を振り返ってみた。聞きたいような話じゃないかもしれないけどね。
| 更新: | ,06/03/07 |
| 初公開: | 2006年03月08日 13:52:53 |
| 最新版: | 2006年03月08日 23:00:16 |
2006-03-08 13:52:47 (JST) in 情報工学・コンピュータ科学, 自己紹介 | 固定リンク | コメント (0) | トラックバック (1)
「情報工学・コンピュータ科学」カテゴリ内の最近の記事
2006-12-12 プログラム・ウィッシュリストについて
2006-09-07 コンピュータ定理証明における弁証法 − 私が作りたいシステム
2006-09-04 あれっ?Cygwin の ImageMagick がウンともスンともいいやがらねぇ
2006-07-15 今日久々にプログラムやってて激しく疲れたこと
2007-11-23 P2Pファイル共有がある社会の著作権法に向けて
「自己紹介」カテゴリ内の最近の記事
2008-04-01 今後の(主に勉学の)方針 (2008年度版)
2007-04-01 今後の(主に勉学の)方針
2006-05-03 大きなミスを犯してしまいました
2008-02-09 テンプレート等ブログシステムの更新履歴
2006-06-13 はてなブックマークについての私のポリシー
批評や挨拶のためのネットコミュニティ
- はてなブックマーク(って何?)
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/93568/8999923
他サイトなどからこの記事に自薦された関連記事(トラックバック)の一覧です。
» JRF の私見:雑記:IT 革命と私――WWW と Tcl の衝撃 (この記事)
» IT 革命とデフレ(1)――自由主義的改革としての「ゆとり教育」 from JRF の私見:雑記
97年の危機をうけて、橋本総理から続く日本の自由主義的改革は、IT 革命の洗礼をうけた私のような者にとって、まさに時宜を得たものだった。革新的な技術が登場した以上、《「結果」の平等、「機会」の平等》に書いたような自由主義的価値観への転換は必要不可欠だと思っていたからだ。 しかし、同時にはじまったデフレとの闘いの中に置かれることで、圧迫のために「自由」を発揮するのが難しくなったものがある。 その一... 続きを読む
受信: 2006-03-08 14:10:13 (JST)
コメント