# 3.5 人机交互（Human Computer Interaction）

「人机交互」（Human-Computer Interaction）是一门研究人类和机器直接进行交互的学科，各种 I/O 设备都提供了界面（interface）以供使用，这对于用户体验（user experience）来说非常重要。

## 3.5.1 发展简史

![人机交互](/files/oa5lE3xe5EtRTHUOHQG5)

## 3.5.2 键盘（Keyboards）

### QWERTY

现代打字机是克里斯托弗·莱瑟姆·肖尔斯（Christopher Latham Sholes）在 1868 年发明的，1874 年才完成设计和制造。其使用了一种 QWERTY 的键盘布局，因其取得商业成功所以其他公司开始抄这种设计。

采用这种布局的方式据说是为了把常见字母放得远一些来避免按键卡住，但实际上它把很多常见的字母（比如 th 和 er ）放在了一起，所以这个原因可能是错的或是不够全面。

尽管有许多新的键盘布局被发明并且声称有各种好处，但也许是出于经济学家所说的转换成本（switching barrier），熟悉了 QWERTY 布局的人们并不想学习新的键盘布局。

尽管在一个多世纪后 QWERTY 的地位依旧不可撼动，但其并非完全通用。现在仍然存在许多变体，比如法国的 AZWETY 布局以及中欧常见的 QWERTZ 布局。

### 十指盲打

打字机最初的发明是为了易读性和文件标准化，而非速度的提升。肖尔斯甚至没想到打字会比手写更快，手写速度大约是每分钟 20 个字母。但随着打字机称为办公室标配，快速打字的需求也渐起。

1880 年，伊丽莎白·朗利（Elizabeth Longley）开始推广十指打字。1888 年，弗兰克·爱德华·麦克林格（Frank Edward McGurrin）学会十指盲打后赢得了备受关注的打字速度比赛后，十指盲打开始流行。专业打字员可以实现每分钟 100 字以上的速度，比手写快得多。

### 电传打字机

电传打字机（teletype machine）是一种经强化后可以用电报线发送以及接收文本的打字机，按下字母后信号会通过电报线使得另一端的电传打字机将字母打出，使得两人可以长距离沟通。

## 3.5.3 命令行界面（Command Line Interfaces）

使用简单的文字命令实现和电脑的交互界面，称为「 命令行界面」（Command Line Interfaces），其常见命令如下：

* ls: list 的缩写，列出当前目录里的所有文件
* cat: concatenate 的缩写，在 unix 中显示文件内容，需要在命令后传递「参数」（argument）来指定文件名。
* finger: 寻找同一个网络中的其他人。

1970 年代，因针对普通消费者的电视机开始量产，同时处理器和内存也在大战，最早出现在 1950s 的屏幕开始代替电传打字机。出于方便，工程师们直接将现有的电传打字机协议套用在了屏幕上，这些“虚拟电传打字机”最终演化成了我们熟知的「终端」（terminals）。

在 1970s 末，屏幕成了标配。1977 年早期最著名的交互式文字游戏 Zork 出现了，其原始版本只有 66 个可供探索的地方，但仍被广泛地认为是最早的互动式小说。

后来由纯文字的游戏演变出了多人游戏（Multi-User Dungeons, MUD），以及如今的 MMORPG(massive, multiplayer online role-playing games)。

如今大多数程序员的工作中依然在使用命令行界面，且用命令行访问远程计算机是最常见的方式。在 Windows 上输入 cmd 或是在 Mac 上搜 Terminal 均可使用命令行界面。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cccs.viyi.cc/3-cao-zuo-xi-tong/3.5-ren-ji-jiao-hu-human-computer-interaction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
