第3のコンピュータ環境
第1は皆さん、普段お使いの Win/Mac 。文字通り、The computer for the rest of us 。身近な道具や媒体のメタファをふんだんに取り入れ、スタイリッシュで生活のためのツールに徹するよう設計されている。その装いに関しては、気にくわなければかなり自由に変えることはできる一方で、その仕組みに手を入れることまではできない(できにくい)。定型作業(旧来メディアで方法論が確立している創作活動も有る意味同じ)をこなす目的に向いているし、そのためのツールの提供も豊富。
第2は最近、PC においても、めざましいスピードでインストールベースを増やしつつある Linux/UNIX 。第1的使い方の使用感を左右する GUI の美的センスの善し悪しに限れば、一日の長のある第1のそれに比べて、雑多で冗長、統一感に欠けるイメージは否めない。しかし、その中核をも含め、かなりの部分がリーチャブル。 もっとも、実際にタッチするには(第1ほど雑多やお仕着せではないにしろ)相応のスキルと知識を要求される。接する際の心構えとして“手作り感覚”というものへの理解が大切である。Mac OS X をしても、以上の特徴を捨て(隠し?)切れてはいない。近年のムーブメントの背景について、個人的には、従来から存在する開発ツールや環境のユーザへの歩み寄りがなかったと言い切る気はさらさらないが、よりむしろ、ユーザ側から開発ツールや環境に歩み寄った(第1環境における制約を嫌い、自由を得るために必要なスキルアップを自らに課した、という)印象を強く持っている。まあ、そうとは気付かずに使えちゃっている、使われちゃっている人も多いようだが…。=b うまく自在に運用できれば、コンピュータ(計算機械)を使いこなしている…という実感を強く持てるし、得られる効果も絶大で、応用の範囲は第1のそれの比ではない。
第3は Squeak/Smalltalk 。そう。Squeak は前2者と並べることができるりっぱな“コンピュータ環境”なのである。もっとも古く、長い歴史を持つその GUI が最低限の使い勝手を保証している。しかし、残念ながらその見た目は、後発である第1の(最近は第2の、であっても…)環境に慣れたユーザの目から見るとかなりしょぼいし、美的センスははっきりいって悪い。(註1) 環境はすべて Smalltalk (註2)で記述・構築されているので、装飾から機能、その実装手段など表層から深部に至るまですべてリーチャブルである。(註3) 逆に、リーチャブルであるがゆえに中途半端な状態で放置される傾向(註4)も強く、環境内で幸せに過ごすにはある種のバランス感覚が要求される。(註5) 第1、第2の環境と違い、ツールやツール間連携において、専用のスクリプト言語や環境を用意することは原則として不要(無用)。もっとも、タイルスクリプティング・システムのように、キーボードに慣れていない子供向けといった用途がはっきりしているのなら、その実装も無意味ではない。接する際の心構えとしては、白紙に絵を描いたり、作業台(それ自身も粘土でできている)で粘土細工をこねる感覚、つまり何をしたいか、それをどう実現するかをあらかじめ、できれば具体的に思い描いておくことが大切。 見た目や作られたとき関わった人たちに多くの共通点があるものの、なんとはなしに、いじっているだけで楽しい Finder (第1環境の象徴的存在)とは対照的な(第2のそれに近い)キビシイ面も併せ持つと言えるだろう。(註6) MacWIRE 的グレイ遣いとアンカーを使った註を試してみました。あ。こんなに近いと意味無いか…。鬱 =(
註1 ただし Morphic ベース GUI。個人的には MVC フレームワークベース GUI は Squeak で追加された Mac ライクな改変を除いて、3ボタンの使い方も含めて、かなり美しいしいいセン行っていると思う。赤貧洗うがごとし…だとも言うが =b
註2 プログラミング言語、フレームワークとしての…という意味。Alto もそうだが、ある種の談義をするときは、Smalltalk[環境] とか Smalltalk[言語]、Squeak[クラスライブラリ]のような但し書きをしないと話がこんがらがることが多々あるので皆さんも注意されたい
註3 タッチャブルであるかも含めユーザのスキルによる、というところは第2と同じ。ただし環境全体が均質なため、改変にかかる方法論の選択や転換に割く労力は最小限で済むはず
註4 作っておいたから、それを気に入って使うのは自由(というか、大いに活用して欲しい…)。ただ、それに際して不満があればご自身で手を入れてね…というスタンス。しかしその先には、そうしてよくした部分を公開してもらって、皆でよりより環境を作りましょう、という理想がある
註5 お願いして作ってもらうのと、自らのスキルを高めて手を入れる、もしくは別のものを新たに作るかといった判断。ときに「諦める」という選択肢も
註6 なんとはなしに、まったりとオブジェクトの海で漂ったり潜ったりしながら、ときにふと、手近なオブジェクトを捕まえて生体解剖さながらにその腹の中を覗いて楽しむ(おおっ、見かけによらずいろいろとやっとるやないかぃ。のぉっ、足んとこはこうしたんかい。おおっ、これはこうかっ。それで、これはこうでぇ、おおっ、とすると、こっちは当然こうやな。それやったら、それやったらぁっ <馬鹿)…などという切り口も無くはない。実際、そうして何も作らず、スキルアップもせずに 20年弱を過ごし、最近になってやっとその価値に気が付いたなんとか馬鹿もおったとか、おらんかったとか =b
以下は上の文章の作成過程、およびそのベースになった予稿です。
ちょっとよれよれになってしまったので、ブレインストーミング 雑談、ちゅうか確認(訂正しました =)・モードに移行です(^_^;)。
- ブレインストーミングは、あえて批判をせずに自由にアイデアを出すことのような気がするので、この場合はディベート(雑談?)でしょうか :-)
阿部さんとしては、やはり Smalltalk-80 (80 はプログラミング環境としてブラッシュアップされたものなので、語弊があれば、それ未満、と読み替えてください)をいちプログラミング環境としてではなく“コンピュータ環境”(単なる計算機械を、我々が日常扱う情報を保持、加工、伝達するための道具にするための仕組み)として、もしくは、そのポテンシャルを持つものとして他のプログラミング環境と別格に扱うことには抵抗がありますか?
いえ。まったくありません。
プログラミング言語とそれを扱う環境が統合され、しかも、その環境自体が、そのプログラミング言語によって記述されており、さらには、その変更が自由かつ即時に可能なものとして、Smalltalkは他に類を見ないと思います。
なるほど。そうすると、ちょっと以下の2点のコメントの趣旨を取りかねるところがあります。Squeak/St をして「読者の皆さんが体験したことのない“コンピュータ環境”があるんです(実は昔からあったのです)よ」という切り口のページなので、Smalltalk を単なる開発環境以上に捉えるとはけしからん!(^_^;)…ということでしたら、納得できていたのですが…。
- 私は開発環境という言葉が好きではありません。24時間テレビのテーマ曲ではありませんが(古すぎ:-)、そういう言葉があること自体、コンピュータを取り巻く環境の未成熟さを語っていると思います。これは蛇足。- 2002-05-09, 16:57:00
細かい話で恐縮ですが、もう少しお願いします。
>あと、AltoではBCPLも動いていたと思います。 → これは、私が例に挙げた“Alto 環境”が均質ではない(つまり、Mesa でもあり、Interlisp-D もあり、Smalltalk-80 すら開発環境のひとつとして動作していたのだから“Alto 環境”を GUI ベース均質環境の例として挙げるのはふさわしくない…)ことを示す反例として挙げられたのでしょうか?
- そうです。AltoというとGUIの元祖というイメージがありますが、必ずしもそれだけではないということです。しかし、あまり深い考えはありませんでした。- 2002-05-09, 16:57:00
ただ、それなら「Mesa で構築されたもの」との但し書きで回避したつもりだったのですが…。
- これは私の見落としです。すみません。
したがって、以下の段は論点ではないと思います。- 2002-05-09, 16:57:00
そうでなければ逆に、Interlisp-D 同様、GUI ベースの均質環境の例として漏れているとのご指摘だととることも可能です。しかしそれでは、BCPL がプログラミング言語でこそあれ環境(ひいては GUI ベースの均質環境)だとは聞いたことがないのでちょっと「?」です。他方、(取り下げました) Mesa に関しては(開発者/社内利用者/被験者=ユーザだった Alto はともかく、少なくとも Star においては)ユーザに公開されていなかったこと、コンパイラであることは知らなかったので、勉強になりました。ご指摘、ありがとうございます。改めて、Mesa について勉強し(否、なで)てみました。また、何か気になる点があったらお願いします。今の時点での認識として、Mesa と断りを入れたとしても「GUI 均質環境」で Star ならともかく Alto を出すのは間違いだったと分かりました。同時に、Star の初期のマニュアルが読みたくなりました。今の興味は「あの、Star っぽさ(ルック&フィール)は、いつ Star に備わったのか? もしくは最初から(つまり“キーボードの後ろのブートボタンを押して”Smalltalk-80 を起動していた時点ですでに) Star に備わっていたものなのか?」です。Mac 馬鹿時代に得た知識とその時点での認識では Lisa 以降ということになってしまうのですが…。=b
>CUIベースでシステム自身も均質なプログラミング言語として、Emacs Lispは欠かせないと思います。 → ここでは、UNIX を代表とする CUI ベースの非均質環境の例(代表格)を挙げているので、CUI ベースの均質環境の存在自体は興味深いものの、それに言及することは、読者の混乱を招きませんか? また、下にも書きましたが、Emacs-Lisp はマクロの発展系、CUI ベース非均質環境お得意の重層的拡張のひとつと解釈しています。まあ、Emacs の多機能さや Emacs ファンの言葉を借りれば Emacs-Lisp を標準環境に持つ“Emacs マシン”というもの「あり」なので“第4のコンピュータ環境(CUI ベース均質)”として列挙して欲しいという Emacs ユーザの声は聞こえてきそうですが…(^_^;)。ここでは、Win/Mac ユーザにおける認知度と話を簡単にするために Emacs さんにはあえてご遠慮願いたいと思ってます(笑)。
- GUIの非均質環境、CUIの非均質環境、(GUIの)均質環境の3項関係とするよりも、非均質環境と均質環境の2項間の関係を見たほうがストレートに伝わりやすいように思います。GUIかCUIかは均質非均質と直交する概念で、本論における本質ではないように思います。その意味で、鷲見さんが最後に書かれていた「世の中には2つのプログラミング環境がある」で十分だと思います。鍵は「ちょっとそれとは違うんですよね」のところでしょうか。- 2002-05-09, 16:57:00
私は、Smalltalkerであって、UNIXのハッカー、Mesa屋さん、あるいはLisperではないので、一面的な見方しかできません。しかし、これらを手足のように操る方々は、私がSmalltalkに対して持っているような感覚を共有しているのではないかと想像しています。
だから、Samlltalk を他のユーザが関わる環境とあえて区別するような書き方はそれぞれに愛着のある人の反感を買う可能性がある…という(つまり、子細はともかく、こういった切り口の文章を出すことは好ましくないというメタな意味での)ご指摘、ご忠言だと汲み取るべきだったのでしょうか?
- そもそも、私はカテゴライズがあまり好きではないのかもしれません。カテゴライズすることはカテゴリ間の対立を伴うので、無駄なエネルギーを費やすことが多いと感じています。最初のカテゴリ分けに意味があったとしても、次第にその本質が失われて、掲げる旗の色だとか、靴の形だとかの争いになっていくのをよく見たような気がします。- 2002-05-09, 16:57:00
重要なのは、このような感覚、即ち、プログラミングの楽しさと苦しみ、その素晴らしさが、少数のプログラマに独占されていることであり、これを一般のユーザに開放するにはどうすればよいかを考えることでしょう。その意味で、Smalltalkもその過程の産物だと思っています。--abee
前の文、同意します。
- これを是とすると、本論とまた違う視点になってしまいますが、「万人がプログラマになれるわけではない」とする「達人プログラマ」や「本物のプログラマ」勢力にどう応えるかという問題も出てきますね。- 2002-05-09, 16:57:00
後の「その意味で、Smalltalkもその過程の産物」とここでことさらに触れられているのがちょっと気になりますが(単なる過程の産物なのだから、鷲見の言うように Squeak/St を今、大仰に持ち上げるのはどうか?とも取れますので…(^_^;))
- これは、アラン・ケイ博士の言葉、「DyanabookもSqueakも忘れよう」の意味です。万物流転というか、色即是空というか(私は寺:-)の人間ではありませんが)。とはいえ、まずは知らないと話にならないですね。- 2002-05-09, 16:57:00
タイルスクリプティングのような切り口だけでなく、Squeak を(皆さんの使っている Win/Mac 環境と並べられる程度に)もっとずっと大きな視野でとらえて欲しい…というのがこのページを作ったときの趣旨でした。
- そうですね。「アラン・ケイはiBookユーザでマンセー」「アメリカの学校はiMacでイパーイ」の人たちは「バーチャルマシン」という言葉の意味を今一度考えていただきたいですね(いかん、喧嘩売ってる)。
このように私自身が自己矛盾の固まりなので、適当に流していただければと思います。--abee - 2002-05-09, 16:57:00
了解しました。お忙しいのに、ありがとうございました。しかし、こういうやりとりのレイアウトもちょっと考えなければいけませんね。
パロアルト研究所発祥の GUI ベースの Smalltalk-80(未満?) もしくは Alto 環境(Mesa で構築されたもの)削除 - 2002-05-09, 16:37:00。ポインティングデバイスとビットマップディスプレイを採用したハードウエアに強く依存したかたちで、ユーザは作業場を意味するウインドウ、指示項目列挙装置を表わすメニュー、画面内で自らの指として働くポインタを操り、直感的な操作を可能とする。ただ、環境自身も均質なプログラミング言語(Smalltalk もしくは Mesa)によって記述されているため、その拡張や変更、環境に対する指示や操作すら必要ならばプログラミング言語で記述・運用することも可能(原則として AppleScript のようなスクリプティング言語実行環境を別に用意する必要はない、ということ)。Mesaはインタプリタでなくコンパイラだったので、Smalltalkほどダイナミックではなかったかも。ユーザには公開されていないですし(XDEのユーザを除く)。Starではユーザ向けにCUSPというスクリプト言語が用意されていました。均質という意味では、Interlisp-Dのほうが近しいと思われます。あと、AltoではBCPLも動いていたと思います。--abee そうすると、この文の趣旨に沿えば(その趣旨ごと否定するのがコメントの趣旨なら論外ですが…(^_^;))、Mesa を取り上げるよりは、Interlisp-D を併記するか、Alto については触れないほうがよいかもしれませんね。Mesa が Smalltalk ほどオープンでなかったというのはちょっと意外でした。--sumim 近年では、Newton Intelligence がこの種の環境を、一部、制限付きながらも忠実に具現化したため、個人的には注目していたが、残念ながら開発は停止された(課せられた制約がなければ、Apple 抜きでも今も活発な改良や拡張が続けられていただろう。それが、この種のコンピュータ環境のポテンシャルでもあるのだが…、Apple は二度までもその真価を封じてしまった)。
対して、ベル研究所発祥の CUI ベースの UNIX もしくはその派生環境は、パーソナルコンピュータ黎明期はサブセットの DOS として一世を風靡し、現在は Linux や Mac OS X として脈々と受け継がれている。キーボードから命令を直接タイプしたりバッチ処理によってコンピュータを操作するスタイルは、やはり文字が主体のプログラミング言語による記述やその実行作業ともよくなじみ、ユーザに違和感を与えない。環境は均一なプログラミング言語で記述されているとは限らないが、適所に適材を用いた(つまり、パフォーマンス重視の)機能の拡張を容易にする構造になっている。重層的拡張を施すことで、CUI からの脱却(別タイプの環境の具現化)もでき、前者との見た目上の区別をなくしたり、目的を特化すればより洗練された環境の提供すら難しいことではない。
CUIベースでシステム自身も均質なプログラミング言語として、Emacs Lispは欠かせないと思います。梅村恭司先生の考える道具としてのMacintosh/HyperCardでは、SmalltalkとHyperCard、Emacsを同列に論じています。--abee う〜む、Emacs はまあいいとして(私の解釈では Emacs はユーザが自分で手軽に活用できるスクリプティングシステムを渇望した結果、実装され発展した「重層的拡張」の一例だとしています)、HyperCard までここで含めてしまうのは抵抗がありますねぇ…(^_^;)。--sumim
最後は、我々になじみ深いコンピュータ環境。Win は後者の、Mac (OS 9 以前)は前者のサブセットに、それぞれ独自のエッセンスを加えつつ、互いにも影響を及ぼしながら現在の GUI 環境に発展したもの。その普及率、認知度の高さから、もはや前2者の派生物という認識ではなく、独立したコンピュータ環境としての地位を築いたといって差し支えないだろう。ウインドウとメニューシステムに積極的にフォーカスした環境を構築するという前者の良いとこ取りのスタンスで、初心者に取っつきやすい直感的操作環境を提供しつつ、後者の手法で機能の拡張を続けた。他方、前者を真似てはいても構造はまったく異なり(むしろ後者寄り)、環境は均一のプログラミング言語で記述されていない。そのため、後者同様、機能の改変や拡張には通常の運用とは別の方法論を必要とする。また、環境を制御するためのプログラムを記述するにもそれ専用の別の仕組み(Visupal Basic for Applications や AppleScript)を改めて装備する必要があった。
私は、このように既存のコンピュータ環境(ここではパーソナルコンピュータの環境)を分類、区別しているので、一般的によく知られた後2者に対して Squeak/Smalltalk のそれとしての顔を“第3の”と称することに決めている。もちろん、Squeak/Smalltalk を素直に単なるひとつの開発環境として捉えるスタンスもありだと思うし、むしろその向きのほうが世の中の大勢を占めるであろうことは承知。でも、なんかそれだと夢がないのよね…(^_^;)。同様の切り口で、同じ Smalltalk でも VisupalWorks やその他の Smalltalk バリアントに、Squeak/Smalltalk (と、Smalltalk-80 未満。Smalltalk-80 は比較対象によっては微妙)とは異質のものを感じるのは、同製品に対し独立したコンピュータ環境というよりは、既存のコンピュータ環境上で運用するためのいち開発環境としての性格を強く意識させられるからではないかと思う。
一部「システム」を「環境」に置き換えました。--sumim - 2002-05-07, 23:16:00
ちょっと大風呂敷を広げすぎましたかね。世の中には2つのプログラミング環境がある。環境を拡張可能なものとそうでないもの。前者にはさらに、拡張時にそれ自身で記述できるもの(Smalltalk、Interlisp-D、Emacs-Lisp) とそうでない物がある。私は前者の前者が好きだ…と書けば、語弊も少ないでしょうけど…。ちょっとそれとは違うんですよね(^_^;)。--sumim
このページを編集 (17552 bytes)
|
このページは Swiki ブック内で孤立しています。 |
This page has been visited 3575 times.