時代とともに進化し、そのたびに人々を惑わす〜ユーザーインタフェースの変遷を学ぶ(CUI編)Windows温故知新〜カリスマITトレーナーが語る技術の変遷(2)

前回は「ネットワーク」という、目に見えない部分の話だったので分かりにくい部分があったかもしれない。今回は目に見える「ユーザーインタフェース」について扱う。古い話が中心だが、現在でも参考になる部分があるだろう。

» 2025年10月23日 05時00分 公開
[横山哲也トレノケート株式会社]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows温故知新〜カリスマITトレーナーが語る技術の変遷」のインデックス

連載目次

「ユーザーインタフェース」は利用者とコンピュータの接点

 「ユーザーインタフェース」(UI)は「利用者とコンピュータの接点」、要するに「コンピュータを操作する方法」のことだ。マウス操作やキーボード入力、画面表示は全てUIである。

 最近は「ユーザーエクスペリエンス」(UX)という言葉も使われている。こちらはUIよりも広い概念で、UIに加えて応答速度や手順の分かりやすさ、アニメーションや効果音を使った感覚的な満足度なども含めた総合的なものを意味する。

PC誕生当初の入力〜トグルスイッチ

 初期のPCはコマンドを実行して結果を表示する方法が主流だった。これを「コマンドラインインタフェース」(CLI)または「キャラクタユーザーインタフェース」(CUI)と呼ぶ。

 しかし、PC誕生当初はそれすらなく、単なる「トグルスイッチ」とLED(要はランプ)だけで構成されていた。トグル(toggle)の元の意味は「留め具」だそうで、「止めるか外すかのどちらか」を意味することから、オン/オフを切り替える部品を指すようになった。

 世界最初のPCは「Altair 8800」(1974年)だが、単体では“本当にトグルスイッチとLEDしかない”という、現代のコンピュータのイメージとはだいぶ違うものだった。OSと呼ばれるものはなく、起動には毎回スイッチを使ってプログラムを入力する必要があった。筆者はAltair 8800を触ったことはないが、当時のコンピュータの一般的な操作方法は以下の通りだった。実際に操作するところを見たこともある。

(1)プログラムの書き込み番地(アドレス)をセットする(Altair 8800のCPUはIntel 8080で、アドレスは16bitだから16個のスイッチを操作する)

(2)入力する情報(データまたはプログラム)を同じくスイッチでセットする(1つのアドレスには8bitデータを格納するので、8個のスイッチを操作する)

(3)次の番地を指定して入力を続ける

(4)全ての情報を入力したら、実行番地を指定して開始する(Intel 8080では通常0番地から開始)


 アドレスをセットした後は、アドレス用スイッチをデータ用スイッチとして使うことで、スイッチの個数を減らすことも多かった。Altair 8800をよく見ると、スイッチの下に「Data」と「Address」の両方の文字が見える(写真1、写真2)。スイッチが兼用されている証拠である。

ALT 写真1 世界最初のPC「Altair 8800」(筆者撮影)
ALT 写真2 よく見るとスイッチの下に「Data」と「Address」の文字が……

 若き日のビル・ゲイツ氏とポール・アレン氏は、Altairの製造元である米国の電子機器メーカーMITS(Micro Instrumentation and Telemetry Systems)に「BASIC」言語を売り込み、もっと簡単に使う方法を提案した(1975年)。BASICは、当時広く使われていた「FORTRAN」から複雑な機能を取り除いた学習用プログラミング言語で、比較的小さなプログラムの作成を想定していた。また、言語仕様がシンプルなので、サイズも小さく4KBに収まったという。

 ただし、電源オンですぐに使えるようにするにはハードウェアの拡張が必要であり、決して簡単ではなかった。ちなみに、Microsoftの創業がシアトルではなく、アルバカーキなのはMITSがアルバカーキにあったためだ。

 余談だが、前出のAltair 8800の写真はシアトルにあった「Living Computers: Museum + Labs」で2019年に筆者が撮影した(写真3)。この博物館はMicrosoftの共同創業者ポール・アレン氏が設立したのだが、2020年に閉館してしまった。実際に動作する古典的マシンを自由に操作できた施設だったので、大変残念である。

ALT 写真3 Microsoftの共同創業者ポール・アレン氏が設立した「Living Computers: Museum + Labs」(筆者撮影)

キーボード入力/CRT出力の登場〜コマンドライン

 ビル・ゲイツ氏とポール・アレン氏はMicrosoftを創業し、次々と登場してきたPC用にBASIC言語を提供するビジネスを始めた。当時のPCで独立したOSを使っていた機種はほとんどなかったため、BASIC言語の中に入出力などのOS機能まで取り込み、最終的には24〜32KB程度のサイズになった。当時のPCが利用可能なメモリサイズは64KBなので、ざっと半分がBASIC言語ということになる。

 データ入力はタイプライターと同様のキーボードを使い、画面はブラウン管(CRT)、表示できるのは横80文字×縦25文字の英数字だけというのが一般的だった。横80文字というのは、当時広く使われていた「ターミナル」(端末)に合わせたためだが、元をたどると「パンチカード」が1枚80文字だったからのようだ(ターミナルについては後述)。パンチカードはコンピュータ登場以前から存在し、統計処理などに使われていた(写真4)。パンチカードの正式名称は「ホレリスカード」で、発明者の名前に由来する。サイズは1ドル紙幣と同じである。

ALT 写真4 ホレリスカード>>意外と正式名称は知られていないパンチカード

 当時のPCが参考にしたのは、UNIXを起源とするシステムやDigital Equipment Corporation(DEC:1998年にCompaqが買収し、Compaqは2001年にHewlett-Packardが買収)が提供するOSだった。UNIXの基本構成は1台のサーバを多数のユーザーで共有するもので、PCのように1台を1人で占有するわけではない。しかし、構成がシンプルだったし、そもそも他のアイデアを思い付かなかったのだろう。

ダムターミナル vs.インテリジェントターミナル

 UNIXの基本はCLIで、1台のサーバにつながった多数のターミナルを使ってアクセスする。サーバとターミナルは1台ずつケーブルで結ばれていたので、配線は結構大変だった(図1)。

ALT 図1 UNIXサーバとターミナル

 UNIXで使われていたターミナルは「ダムターミナル」(ダム端末)と呼ばれ、入力した文字がそのままサーバに送られた。ターミナルにはサーバから送り返された文字が表示される(図2)。

ALT 図2 ダムターミナル

 ターミナルでは特別な処理をしないので「ダム」(dumb)、つまり「愚かな、ばかな」の言葉が使われた。1980年代にはグラフィックス表示も可能な高機能ダムターミナルが登場しており、全然“dumb”ではなくなっていた。

 ダムターミナルでは1文字入力すると即座にサーバに送られるため、入力した文字をサーバが返さないと画面に表示されない(端末自身で表示する「エコーバックモード」もあったが……)。

 端末は入力文字を表示しないため、文字入力ではなく操作コマンドとして扱うこともできる。「vi」というエディタ(現在はvi互換の「Vim」の方が有名かもしれない)では、「h」「j」「k」「l」の4つのキーがそれぞれ「↑」「↓」「←」「→」(左下上右)のカーソル移動に対応させた。文字を入力するときは「入力モード」に切り替える。

 ダムターミナルは柔軟なプログラムが実現できる代わりに、サーバの負荷や通信線の負担が大きくなる。ただし、人間の操作はコンピュータから見るとかなり遅いので、実際には大きな問題にはならなかったようだ。

 IBMに代表されるメインフレームの世界では、これとは全く違った方式を採っていた。これを「インテリジェントターミナル」(英語では「Smart Terminal」)と呼ぶ。「高機能なダムターミナル」のことを「インテリジェントターミナル」と呼んでいた人もいたので少々紛らわしい。

 インテリジェントターミナルでは、ユーザーが入力した文字はいったんターミナル内に蓄えられる。一通り入力が終わったら「送信」キーを押してサーバに送り、応答を待つ。ちなみにIBM PCが登場するまで、PCのキーボードにはタイプライターと同様に「改行」キーを「キャリッジリターン」(CR)または単に「リターン」(Return)と呼んでいたが、IBM PCがこのキーを「送信」に割り当てたため、「Enter」と呼ばれるようになった。データを入力するから「Enter」である。

 インテリジェントターミナルは「フォーム」機能も備えており、サーバからの指示に従って帳票イメージを表示することもできた。フォーム内のフィールドには属性を設定し、「8文字以内」や「指定された文字のみ」「(秘密の情報なので)入力文字は表示しない」といった制約をかけることもできた。現在のWebフォームとそっくりである(図3)。

ALT 図3 インテリジェントターミナル

 ところでこの話、どこかで書いたと思っていたらアイティメディアの「オルタナティブ・ブログ」だった。こちらの方が詳しいので興味があれば読んでほしい。

Windows登場以前のMS-DOSのCLI

 ようやくPCの話に戻ってきた。PCではダムターミナルの動作をまねてはいるものの、実際にはターミナルではなく、PCに直結したキーボードを使う。コンピュータがハードウェアを直接利用することで、通常のターミナルではありえないキーの組み合わせ、例えば「左[Shift]キーを押す」といった操作も処理できる。[Shift]キーは文字ではないため、通常のターミナルではサーバに送れない(詳細はコラムを参照)。

 カーソルキー(↑↓←→)は初期のPCからあったものの、アプリケーション上での利用に限られており、OSのコマンド入力には使えなかった。PC最初の単体OSである「CP/M」(1977年商品化)でも、利用できたのは表示可能文字だけで、コマンド入力時はカーソルキーすら使えなかった。ただし、ゲームだけは別で、こちらは早い時期から左右の[Shift]キーで操作するシューティングゲームなどがあった。

 1981年、Microsoftから「MS-DOS」(IBM PC向けにはPC-DOS)がリリースされたとき、「テンプレート」という機能が登場して、ファンクションキー[F1]から[F8]に割り当てられた。使いにくいので、日常的に使っている人は少なかったと思うが、筆者は「CA」(Copy All)と「CU」(Copy Until)はよく使っていた。以下はテンプレート機能の一部である。

  • F1……C1:直前に入力したコマンド文字を1文字ずつ打つたびに順に貼り付ける(Copy 1)。既定では右矢印[→]キーに割り当てられていた
  • F2……CU:直前に入力したコマンドを入力した文字まで貼り付ける(Copy Until)。例えば、直前に入力したコマンドが「COPY C:\AUTOEXEC.BAT」の場合、[F2]→[U]と2つのキーを順に打つことで「U」の前、つまり「COPY C:\A」まで貼り付けられる
  • F3……CA:直前に打った1行分の文字がそのまま貼り付く(Copy All)

 他にもあったが、覚えていないし、使った記憶もない。

CUA準拠の操作になったMS-DOS 5.0

 MS-DOSのテンプレート機能は、お世辞にも使いやすいとは言えなかったので、さまざまな追加ソフトウェアが登場した。Microsoft自身も「MS-DOS 5.0」(1991年)から「DOSKEY」というツールを標準装備し、現在のような左右カーソルで行編集、上下カーソルで過去に入力したコマンドを呼び出す機能が実装された。ただし、DOSKEYを組み込まない場合は従来通りだった。

 MS-DOS 5.0ではDOSKEYの他に、ようやくスクリーンエディタ「EDIT」が標準装備された(画面1)。それまでは「EDLIN」というラインエディタしか提供されていなかった。EDLINの操作体系は少々癖があり、筆者は使い方を覚えていない。やむを得ず何度か使ったことはあるのだが、操作方法は全く覚えていない。

ALT 画面1 MS-DOS付属の「EDIT」

 EDITにはキャラクタベースながらメニューバーが存在する(画面2、画面3)。こうしたメニューは他のアプリケーションでも採用された。このときのUI標準が、IBMがメインフレーム用に定義していた「Common User Access」(CUA)である(1987年発表)。EDITもCUAに準じる操作になった。例えば、ダイアログボックス内の選択肢「OK」と「キャンセル」などの移動は[Tab]キーで行う、[ESC]キーでダイアログボックスをキャンセルするといった規則である。

ALT 画面2 「EDIT」の編集画面
ALT 画面3 マウスがないので、メニューの表示は[Alt]+[F]キーを押す

 今でも覚えておきたいのは、クリップボードを操作する以下の3つだ。

  • 切り取り:[Shift]+[Del]キー
  • コピー:[Ctrl]+[Ins]キー
  • 貼り付け:[Shift]+[Ins]キー

 「Windows 3.1」以降はAppleの「Macintosh」由来の[Ctrl]+[X]キー/[Ctrl]+[C]キー/[Ctrl]+[V]キーが広く使われているが、コマンドラインでの[Ctrl]+[C]キーは、MS-DOSを含めて多くのOSで「実行中止」となる。事前に文字列を選択していれば「コピー」、何も選択していなければ「中止」なので区別できるが、選択をミスしてコピーするつもりが実行を中止してしまう事故が起きやすい。その点、CUAではこうした心配がない。

 ほとんどアプリケーションは現在もCUAをサポートするので、覚えておいて損はないだろう。例えば、Microsoftのクラウドサービス「Microsoft Azure」では、コマンド入力環境(クラウドシェル)でCUA準拠の操作しかできない場面が時々ある。

個人的なエディタのお話

 MS-DOS 5.0は一部に互換性問題が発生していたため、NEC「PC-9801」用のMS-DOS 3.3DがMS-DOS 5.0と同時に登場し、独自のスクリーンエディタも標準装備された。ただし、多くのユーザーはその前からサードパーティー製品を使っていた。

 当時人気があったのはメガソフトの「MIFES」(マイフェス)で、これは現在もWindows対応版が発売されている。現在の価格は1万5000円程度だが、当時は3万8000円もしたらしい(高かったことだけは記憶にある)。

 筆者は当時使っていた「EZ Editor」(1987年発売)から、同じ作者(兵藤嘉彦氏)の「VZ Editor」に乗り換えた。検索すると9800円だったらしい(「らしい」ばかりで恐縮です)。EZ EditorとVZ Editorは作者が同じだが発売元は違っていた(PCワールド・ジャパンとビレッジセンター)。全く別の製品なのに、アップグレード価格が設定されていて、大変助かったことを覚えている。なお、VZ EditorのWindows版はなく、既に開発は終了している。

 VZ Editorはカスタマイズ能力が高く、通常では使えないキーも設定できた。また、常駐モードがあり、MS-DOSのコマンドをVZ Editorから実行することもできた。この感じがUNIX上での「Emacs」(イーマックス、UNIXでviと並んで有名なエディタ)の使い方となんとなく似ていたので、キー割り当てもEmacs風にしていた。このときの設定ファイルは今も「Vector」で公開されている(https://www.vector.co.jp/soft/dos/writing/se002491.html)。さすがに意味はないと思うのだが、そのうちに歴史遺産としての価値が出るかもしれない。

【コラム】ダムターミナルのカーソルキーとファンクションキー

 UNIXなどで使われていた端末の多くは、通常の文字以外にカーソルキーやファンクションを操作する特殊なコードを生成していた。これを「エスケープシーケンス」や「制御シーケンス」と呼ぶ。

 例えば、端末の上矢印(↑)を押すと、エスケープ(ESC)文字(16進数1B)に続いて「[A」の2文字を連続して送る。そのコード(ESCを入れて3文字)がそのまま端末に戻ってきて、カーソルを上に移動する意味になる。ESC文字単独だと画面に表示されず、意味を持たない。

 ちなみに、ESC文字単体は[ESC]キーを押せば入力できるのだが、現在はもちろん、昔からエスケープシーケンスを直接手入力することはなかった。なぜこのキーがごく初期の頃からあったのかは分からない。

 ダムターミナルのエスケープシーケンスを使うことで、大半のUNIXではコマンド入力中に左右の移動が可能だった。ただし、エスケープシーケンスはターミナル機種ごとに若干の違いがあって、動作しなかったり、誤動作したりする場合もあった。

 前述のviが[h][j][k][l]キーをカーソルキーのように使うのは、「カーソルキーの場所が遠い」というのが第一の理由のようだが、エスケープシーケンスに関わる問題を回避するためもあったのかもしれない(実際にはターミナルの機能差を吸収する「termcap」〈タームキャップ〉という仕組みもあり、ほとんどの端末はviでカーソルキーを使うことも可能だった)。

 エスケープシーケンスを使うことで、カーソルの移動や表示位置の変更が可能になった。クリスマスシーズンにはこうしたエスケープシーケンスを使ったアニメーションクリスマスカードが送られてきたものである。

 ちなみに、[Ctrl]キーは上位bitを「0」にして、下位5bitのコードを生成する。例えば、大文字の「Z」は16進数で「5A」、小文字では「7A」である。この下位5bitだけを抽出するといずれも「1A」(10進数で「26」)となり、[Ctrl]+[Z]キーが生成するコードになる。表示可能な文字ではないが、これくらいはどのダムターミナルでも送信できた。

 ダムターミナルの代表がDEC製の「VT-100」で、現在でも「VT-100互換」という言葉が時々登場するくらい広く使われた。多くのダムターミナルはVT-100互換をうたったが、互換度は機種ごとにまちまちで、完全互換のものは少なかった。

 本物のVT-100には横132桁モードがあったり、カーソルの点滅制御や表示文字の位置指定ができたり、本当に高機能だった。中にはターミナルを完全に動作を停止させるシーケンスもあって、いたずらにも使われた。最後期には、独自フォントをダウンロードする機能を応用して、グラフィックスまで表示してした。これを「SIXEL(シクセル)グラフィックス」と呼んだ。最近、「Windows 11」の「ターミナル」にSIXELを表示する機能が追加されたそうだが、誰が使うのか疑問である。

 調べたら、Microsoftが仮想ターミナルで使えるエスケープシーケンスを公開していた。今も需要はあるのだろうか……。


終わりに

 GUIの話まで続けるつもりが、かなり長くなってしまった。「Windows温故知新」なのに申し訳ない。次回はやっとWindowsの話になる。


筆者紹介

横山 哲也(よこやま てつや)

トレノケート株式会社(旧グローバル ナレッジ ネットワーク株式会社)で、マイクロソフト認定トレーナーとしてMicrosoft AzureやWindows ServerなどのIT技術者向けトレーニングを担当。Windows Serverの全てのバージョンを経験。近著に『徹底攻略 Microsoft Azure Fundamentals教科書[AZ-900]対応 第2版』(インプレス)、『ストーリーで学ぶWindows Server ひとり情シスのためのITシステム構築入門』(日経BP社)がある。好きなサービスはActive Directoryドメインサービス、推しているアイドルは皆本しいね(「君のメインヒロイン」所属)。


Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。