グラフィカル革命 — 光の合図から画面の光へ
前講「高級言語、低級言語」は、機械語からアセンブリ、高級言語、コンパイラへと抽象化の階段を 上りきったところで終わった。その階段の先にあるのは、コードが動く機械と人間が出会う場所 ——画面である。これがシリーズ全18講の、最後の講義になる。 コンピュータは長いあいだ、人間に歩み寄る努力をしてこなかった。プログラムとデータをまとめて 飲み込み、結果を紙に吐き出すだけの機械が、どうやって画面とマウスを手に入れ、人が指し示せる 道具になっていったのか。その歩み寄りの歴史をたどり、最後にもう一度、シリーズの出発点に 立ち返る。全4セクション・演習19問。回答はブラウザに保存されるので、途中でやめても続きから 再開できる。
進捗 0 / 19 問(正解 0 問)
1. Memexと対話型コンピューティングの夜明け
前講は、機械語からアセンブリ、高級言語、コンパイラへと抽象化の階段を上りきったところで終わった。この最終講では視点を変える——階段を上りきった先にあるのは、コードが動く機械と人間が出会う場所、すなわち画面である。1945年、ヴァネヴァー・ブッシュは雑誌記事のなかで、デスクの中に本や記事や写真をしまい、人間の連想に従って情報同士を結びつけられる「メメックス」という装置を構想した。装置そのものは実現しなかったが、「情報をどう扱いやすくするか」という問いは残った。初期のコンピュータはバッチ処理が標準で、人間との間に即座のやり取りはない。テレタイプライタによる1行ずつの往復、そして表計算ソフトVisiCalcという転機を通じて、コンピュータが少しずつ人間に歩み寄っていく過程を辿る。
1945年、ヴァネヴァー・ブッシュは雑誌記事「As We May Think」のなかで、 ある架空の装置を構想した。デスクの中に本や記事や写真をしまい込み、人間の連想に従って情報同士を 結びつけていける机——メメックスである。装置そのものは実現しなかった。だが 「情報をどう扱いやすくするか」という問いだけは、この後の数十年を通して残り続けることになる。
当時のコンピュータは、その問いからは遠いところにいた。標準的な使い方は バッチ処理である。プログラムとデータをまとめて読み込ませ、しばらく待ち、 結果を紙に印刷して受け取る。ユーザーとコンピュータのあいだに、即座のやり取りは存在しない。 コンピュータが小型化・低価格化していくにつれて、その計算能力の使い道の1つが、人とコンピュータが 出会う点——ユーザーインタフェースの改善に向けられていく。
最初の対話型(インタラクティブ)なコンピュータは、テレタイプライタを通じて 現れた。ユーザーが1行タイプすると、コンピュータが1行以上で応える。この単純な往復が、対話の 出発点である。まだ画面はなく、やり取りは紙のロールに印字されていた。やがてブラウン管が普及した あとも、多くのソフトウェアは画面を「ガラスのテレタイプライタ」として——つまり1行ずつ文字が 流れていく紙の代用品として——扱い続けた。
流れを変えたのが、1979年に登場した表計算ソフトVisiCalcである。数字を1つ 書き換えるたびに表全体を素早く描き直す必要があり、そのためにはビデオディスプレイ用のメモリへ 直接書き込むしかなかった。大型の時分割コンピュータとダム端末をつなぐ通信路には、その速度がない。 大型コンピュータには真似のできないアプリケーションが、小型のパーソナル コンピュータの上に初めて現れた瞬間だった。
IBM PCの時代になると、多くのソフトウェアがオペレーティングシステムを迂回して、ビデオ ディスプレイメモリへ直接書き込むようになる。本来この近道は互換性のリスクを伴うが、IBMが ハードウェアの標準を作り、他のメーカーもそれに従ったため、そのリスクなしに速度だけを手に 入れられた。この「画面用のメモリに直接書き込む」という発想が、次のセクションの主題である ピクセルとフレームバッファに、そのままつながっていく。
ヴァネヴァー・ブッシュが1945年の記事「As We May Think」で構想した「メメックス」とは何か
初期のコンピュータの多くが採用していた「バッチ処理」とはどのような使い方か
テレタイプライタを使った最初の対話型コンピュータは、ユーザーとどのようにやり取りしていたか
表計算ソフトVisiCalcが、それ以前の大型コンピュータでは実現できなかった理由はどれか
IBM PCの時代、多くのソフトウェアがオペレーティングシステムを迂回してビデオディスプレイメモリに直接書き込んでいた。これが広く行われた理由はどれか
このセクション: 0 / 5 問正解
2. ピクセルとフレームバッファ — 画面の点をビットで描く
前セクションの終わりに出てきた「画面用のメモリに直接書き込む」という発想を、今度は仕組みの側から見る。ラスタディスプレイの画面は、ピクセル(画素)と呼ばれる点の長方形配列である。メモリのブロックが画面専用に割り当てられ、そのブロックの中のビットが1つ1つのピクセルに対応する——これがフレームバッファである。1ピクセルに何ビット割り当てるかで表現できる色の数が決まり、その関係は「色数 = 2の(ピクセルあたりビット数)乗」という単純な式で書ける。第4講で確かめた「nビットで2のn乗通りを区別できる」という考え方が、ここでは色という文脈に応用されているだけである。ピクセルの配列で表すラスタと、直線・曲線を計算式で表すベクトルの使い分けもここで押さえる。
ラスタディスプレイの画面は、ピクセル(画素)と呼ばれる 点の長方形配列である。コンピュータのメモリのうち一定のブロックが画面専用に割り当てられ、その ブロックの中のビットが、1つ1つのピクセルに対応する。この画面専用のメモリ領域が フレームバッファである。
1つのピクセルに何ビット割り当てるかを色深度と呼び、表現できる色の数は次の 式で決まる。
色数 = 2 の(ピクセルあたりビット数)乗
1ビットなら2の1乗で2色、つまり白と黒だけ。3ビットなら2の3乗で8色。2バイト(16ビット)まで 増やせばハイカラー、3バイト(24ビット)ならフルカラーと呼ばれ、1677万色を超える。これは 第4講「ビットの正体」で確かめた 「nビットで2のn乗通りを区別できる」という考え方が、そのまま色という文脈に応用されているだけ である。
大事なのは、フレームバッファに並んでいるものが、それ自体としては色でも絵でもないという点だ。 そこにあるのはただの数値の列である。ディスプレイという文脈がその数値を色として 解釈して、初めて画面に絵が現れる。第4講の結論——ビットの意味は文脈に依存する——が、ここでも そのまま成り立っている。
画面に描く方式は、ラスタだけではない。ベクトルディスプレイは、電子銃で直線や 曲線を直接なぞって描く。この方式の画面に対しては、ライトペンという装置が使える。 名前に反してライトペンは光を出すのではなく、光を検知する装置で、電子銃のビームが 自分のところを通過したタイミングから、画面上のどこを指しているかを判定する。
画像の保存形式としても、ピクセルの配列で表すラスタ(ビットマップ)と、直線・ 曲線を計算式で表すベクトルグラフィクスの使い分けがある。橋の設計図のような 幾何学的な図形は、数式で正確に表せるベクトルが向く。実際に架かっている橋を撮った写真は複雑 すぎて数式では表しきれないので、ラスタが向く。
上の図の対応関係を、今度は自分の手で確かめよう。ピクセルをタップして白黒を反転させると、 そのピクセルに対応するフレームバッファのビットが即座に書き換わる。8×8のグリッドでは ちょうど1行が1バイトにあたるので、画面に描いた絵がメモリの上ではただの0と1の列に なっていることを観察できる。
① 画面:8×8=64ピクセル(タップで白黒が反転)
② メモリ(フレームバッファ):64ビット=8バイト
ビット1(黒いピクセル): 0 / 64
このグリッドは1ピクセルに1ビットを割り当てているので、色数は2の1乗=2色(白黒)です。 ピクセルをタップするたびに、フレームバッファの対応するビットが1つだけ書き換わります。 8×8のグリッドではちょうど1行が1バイトです。メモリに並んでいるのはただの0と1の列に すぎず、ディスプレイという文脈がそれを白と黒として解釈することで、初めて「絵」になります。
ラスタディスプレイにおける「ピクセル(画素)」とは何か
1ピクセルあたり4ビットを使うディスプレイで表現できる色の数は何通りか(色数 = 2のビット数乗)
横100ピクセル×縦100ピクセルの画面で、各ピクセルに1ビット(白黒2色)だけを使う場合、画面全体の情報を保存するのに必要なメモリは何バイトか
「フレームバッファ」の説明として正しいものはどれか
ベクトルグラフィクス(直線・曲線を計算式で表す方式)とラスタグラフィクス(ピクセルの配列で表す方式)の使い分けとして正しい説明はどれか
このセクション: 0 / 5 問正解
3. マウスとGUIの誕生 — Xerox PARCからMac/Windowsへ
画面にピクセルを書き込めるようになっても、それだけでは人間はコンピュータに近づけない。画面上のものを指し示す手段が要る。ダグラス・エンゲルバートは1945年にブッシュの記事を読んだことをきっかけに入力装置を根本から考え直し、ホイールとボタンの付いた小さな装置——マウスを生み出した。アイヴァン・サザランドが1963年に発表したSketchpadは、MITリンカーン研究所のTX-2というコンピュータの上で、ライトペンによって画面に絵を描き、それを保存できるようにした。そして1970年に開設されたゼロックスPARCで、アラン・ケイらの手によってAltoが生まれる。複数のプログラムがそれぞれのウィンドウに入り、ボタン・メニュー・アイコンをマウスで操作する——GUI(グイ)の誕生である。Altoは販売されなかったが、10年以上を経てMacintoshとして消費者の手に届き、続いてウィンドウズ戦争が始まった。
画面にピクセルを書き込めるようになっても、それだけでは足りない。画面上のものを人間が指し示す 手段が要る。ダグラス・エンゲルバートは、1945年にブッシュの記事を読んだことを きっかけに、入力装置そのものを根本から考え直す仕事を始めた。そこから生まれたのが、ホイールと ボタンの付いた小さな装置——マウスである。
画面を対話的なキャンバスとして扱うという発想の先駆けは、それより少し前にあった。 アイヴァン・サザランドが1963年に発表したSketchpadは、 MITリンカーン研究所のTX-2というコンピュータの上で動き、ライトペンによって 画面に画像を描いたり変更したりでき、その画像をメモリに保存できた。
1970年に開設されたゼロックスPARCには、アラン・ケイをはじめとする対話型 グラフィカルコンピューティングの先駆者たちが集まった。彼らが1972年から73年にかけて作り上げた Altoでは、複数のプログラムがそれぞれのウィンドウに入り、ボタン・メニュー・ アイコンといったグラフィカルなオブジェクトをマウスで操作できた。この一式が、後に GUI(グイ)——グラフィカルユーザーインタフェース——と呼ばれるものの始まりである。
Altoは製品として販売されなかった。その仕組みが消費者の手に届くまでには10年以上かかっている。 1979年にPARCを訪れたスティーブ・ジョブズらが影響を受け、1983年のアップルLisaは商業的に振るわ なかったが、翌1984年のMacintoshが成功する。初代Macintoshのハードウェアは エレガントではあっても革命的ではなかった。革命的だったのは、Mac OSという グラフィカルなオペレーティングシステムの方である。
グラフィカルOSは、テキストベースのOSとは要求される規模がまるで違う。MS-DOSのようなOSが提供 すべきなのは、主にファイルシステムを使うための少数の単純なAPI関数だった。対してグラフィカルOSは、 線・長方形・楕円、さまざまな字体の書式付きテキストといった「絵」を描くための、何百もの API関数を用意しなければならない。この時期に生まれた言葉がWYSIWYG(ウィズィウィグ) ——What You See Is What You Get、画面に見えているものと印刷結果がほぼ同じに見えるという性質である。
1985年にはGEM・VisiOn・Windows 1.0が相次いで発売され、いわゆるウィンドウズ戦争が始まる。 Windowsが多数のユーザーを引きつけるのは、1990年のWindows 3.0以降のことになる。
ダグラス・エンゲルバートが発明し、現在も広く使われている入力装置はどれか
アイヴァン・サザランドが1963年に発表したSketchpadというプログラムの特徴として正しいものはどれか
ゼロックスPARCが1972〜73年に開発したAltoが実現し、後に「GUI」と呼ばれるようになった特徴はどれか
初代Macintosh(1984年発売)が、それ以前の一般的なコンピュータと比べて革命的だった理由はどれか
MS-DOSのようなテキストベースのOSと、Mac OSのようなグラフィカルなOSを比較した記述として正しいものはどれか
WYSIWYG(ウィズィウィグ)とは何を意味する言葉か
このセクション: 0 / 6 問正解
4. 光の合図、めぐりめぐって — シリーズの締めくくり
第25章は、電気による信号伝達よりも効率のよい媒体として、光ファイバーを通る光——光子を挙げて幕を閉じる。ガラスや高分子でできた細い管の中を、光は角を曲がりながら進み、電気信号よりはるかに速くデータを運ぶ。だが突き詰めれば、そこを流れているのは点いたり消えたりする2つの状態の合図でしかない。それは第1講で、懐中電灯の点滅と点字の凸凹と電気回路のオン/オフが同じ1つのことの言い換えだと確かめた、あの出発点そのものである。このセクションでは、全18講を貫いてきた一貫したテーマを振り返り、シリーズを閉じる。
第25章の最後で、話は情報を運ぶ媒体そのものに向かう。電気による信号伝達よりも 効率のよい方法として挙げられるのが、光ファイバーを通る光——光子である。ガラスや 高分子でできた細い管の中を、光は角を曲がりながら進んでいき、電気信号よりはるかに高速に データを運ぶ。
だが、その細い管の中を流れているものを突き詰めれば、点いたり消えたりする 2つの状態の合図でしかない。運び手が電子から光子に変わり、速度が桁違いに なっただけで、「オンとオフを並べて意味を作る」という骨格そのものは、モールス符号の短点と 長点を並べていた頃から何ひとつ変わっていない。
それは第1講「コードで世界を伝える」で確かめた ことそのものである。懐中電灯の点滅、点字の凸と平、電気回路のオン/オフ——形はまったく違うのに、 どれも同じ1つのこと、すなわち2つの状態で情報を表すという仕組みの言い換えに すぎなかった。光ファイバーの光も、速度と媒体が変わっただけで、そこは何も変わっていない。
第1講の組み合わせ論と懐中電灯の電気回路から始まり、ビット(第4講)、論理とゲート(第5〜6講)、 算術回路(第7講)、記憶とメモリ(第8〜9講)、自動化・技術史・CPU(第10〜12講)、文字コード・ バス・OS(第13〜15講)、数値表現と言語(第16〜17講)を経て、本講のGUIとピクセルにたどり着いた。 その全過程がやっていたのは、単純な「2つの状態」の組み合わせを、段階的に積み上げていく ことだけである。どんなに複雑に見える仕組みも、分解していけば必ずそこへ戻る——それが、この シリーズ全18講を貫いてきた一貫したテーマだった。
ここでシリーズは幕を閉じる。出発点の懐中電灯に戻ってきたところで、もう一度第1講から読み直すと、 同じ内容がまったく違って見えるはずである。全18講、おつかれさまでした。
第25章の結びは、電気による信号伝達よりも効率的な情報伝達の媒体として何を挙げているか
光ファイバーによる情報伝達は、このシリーズの第1講で学んだどんな仕組みの延長線上にあると位置づけられているか
第1講の懐中電灯の点滅から本講の光ファイバーまで、このシリーズ全18講を貫いてきた一貫したテーマとして最も適切なものはどれか
このセクション: 0 / 3 問正解