• 非文字の研究

“Text User Interface”(TUI)は、「レトロニム」あるいは再命名だという。GUIが普及したあと、コマンドラインインターフェースは変化し、それを表現するためにこの言葉が作られた。

マイクロプロセッサが登場する前、ある程度の性能を持ったコンピュータは、専用の部屋が用意されるほど大きく、高価なものだった。それを多数で共有するため、複数の端末(ターミナル)を接続して利用していた。このときには「コマンドラインインターフェース」が使われていた。ターミナルは、ハードウェアであり、複雑なことをすればするほどコストが上がってしまう。表示は、最初プリンタだったが、そのうちCRTに表示するものが登場する。

こうしたなか、1973年にXeroxの研究所で作られたAltoは、ビットマップディスプレイ、マウス、キーボードを持つ、個人利用を想定したコンピュータだった。このマシンで、ウィンドウやアイコン、メニュー、ポインタといった概念が組み合わされ、GUIの基礎ができあがる。これをWIMPということもある。

1980年台に入ると、マイクロプロセッサが高性能化する。IBM PCが登場し、高性能なUnixワークステーションも作られた。この中で、GUIが発展していくわけだが、Unixでは、コマンドラインインターフェースがそのまま残り、その上にウィンドウシステムが載るという構造となったため、コマンドラインを利用するために「ターミナル・エミュレータ」ソフトウェアxtermなどが開発された。ここで端末はソフトウェア化する。そうなると、機能の追加はソフトウェアだけの問題となり、どんどん複雑な機能が搭載されていく。ターミナル・エミュレータのウィンドウ内でマウスが指している位置やボタンの状態を検出し、ウィンドウのタイトルを書き換えるといった機能が搭載される。このとき、これらの拡張機能は、コマンドラインプログラムから利用可能なようにエスケープシーケンスで実現された。つまり、コンソールアプリケーションのまま、GUIウィンドウの中でマウスを使った操作が可能であるように作ることが可能になっていた。

そうなると、コンソールアプリケーションでも、マウスやキーボードからGUIアプリケーションのように、メニュー操作やポイントやドラッグによる選択を可能にするアプリケーションが登場する。こうしたものを総称するのがTUIなのである(写真01)。

  • 写真01: 左側の3つのウィンドウがMS-DOS時代のTUIアプリケーション、Star Trek、DOS SHELL、そしてMicrosoft Works。WSL上の仮想マシンQEMUを使った。右側はLinux上のrogue、vim、そしてemacsである

Unixには多数の端末装置の制御コードを統一的に扱うtermcap(のちにterminfo)が作られ、文字編集を視覚的に行えるスクリーンエディタなどが作られた。

こうしたソフトウェアを土台にして端末画面上で、ウィンドウ表示やメニュー、フォーム入力などをサポートするcurses(カーサス)のようなライブラリが作られた。これがLinux/UnixでのTUIのベースになる。

このcursesで最も使われたアプリケーションは、rougeというゲームだ。rougeは、マップを上から俯瞰する現在のロールプレイングゲームすべての祖先ともいうゲームだ。端末の上でテキストで描画された迷宮の中をさまよう。

このTUIは、Windowsが登場する前のMS-DOSにやってくる。Microsoftは、MS-DOS 4.xにDOS SHELLと呼ばれるTUIアプリケーションや、スクリーンエディタEDIT、Quick BASIC、CodeViewなどのTUIアプリケーションを導入する。Microsoft Worksの初期バージョンは、TUIでワープロ、表計算を実現していた。ただし、残念ながら、このTUIは、画面(テキストビデオメモリ)を直接操作していた。MicrosoftがTUIを「見捨てる」のは、1995年のWindows 95からだ。ここからPCの本格的なGUI時代が始まる。

さて、時は流れ、Windows 11では、コンソール機能が完全に分離され、従来の標準コンソール(conhost)の代わりにWindows Terminalを利用することが可能になった。というのもNT以来使われているconhostでは、カラーの絵文字表示や合字、異字体などに対応するのが困難だったからだ。

Windowsは、XP以降、OSの基本機能的には、マルチタスクやTCP/IPなどLinuxやUnixと同等のことが可能になっていたが、唯一、標準コンソールだけがLinux/Unixとは異なり、ここがソフトウェア移植の問題点だった。コンソールの制御だけは、Windows固有のAPIを呼び出す必要があり、Windowsの文字コードに対応する必要があった。また、コンソール自体の置き換えも困難で、サードパーティのコンソールプログラムは、この点でかなりトリッキーなことをしていた。

Windows NTやその後のWindowsで、Linux/Unixとは違う方向に向かったWindowsだが、Windows 11でコンソールが改良され、ようやくLinux/Unixに「追いついた」といえる。思えば、遙かな遠回りだった。

今回のタイトルの元ネタは、いわゆるホームズものの第一作Arthur Conan Doyleの“A Study in Scarlet”こと、「緋色の研究」である(そしてちょっとHawthorneの“The Scarlet Letter”だがこっちは筆者の守備範囲外)。シャーロック・ホームズは、あまりに有名で、本を読んだことがなくとも、テレビドラマや映画ぐらいは見たことがあるだろう。ホームズが世界中で「ウケ」た理由には、いろいろとあるが、小説として見た場合、空き家の殺人というオーソドックスな探偵小説の場面が、あっという間に広大な世界に広がる「ワイドスクリーン」的な体験が強烈な印象を残すのが1つの理由だと思っている。130年以上も前の作品だが、映画やテレビではなく「テキスト」で読めば、当時の読者と同じ体験ができる(幸運なことに青空文庫でも読める)。ホームズものには多数の話があるが、少なくともこの本だけは読んでおいて損はない。