計算機科學基礎_7

命令行界面

計算機早期同時輸入程序和數據(用紙卡/紙帶),運行開始直到結束,中間沒有人類進行操作,原因是計算機很貴,不能等人類慢慢輸入,執行完結果打印到紙上。

到1950年代,計算機足夠便宜+快,人類和計算機交互式操作變得可行,爲了讓人類輸入到計算機,改造之前就有的打字機,變成電傳打字機。

到1970年代末,屏幕成本足夠低,屏幕代替電傳打字機,屏幕成爲標配。

  • 人機交互 Human-Computer Interaction。
  • 早期輸出數據是打印到紙上,而輸入是用紙卡/紙帶一次性把程序和數據都輸入進去。
  • QWERTY 打字機的發展,肖爾斯發明於1868年。
  • 電傳打字機 Teletype machine。
  • 命令行界面 Command line interface
  • ls命令
  • 早期文字遊戲 Zork(1977年)
  • cd 命令

輸入輸出,都是計算機組件互相輸入輸出。比如RAM輸出數據,或輸指令進CPU。

計算機接收人類的輸入,怎麼從電腦中拿出信息,除了用打孔紙卡。

有很多種“輸入輸出設備”,讓人類和計算機交互,它們在人類和機器間提供了界面。如今有整個學科專門研究,叫“人機交互”。
界面對用戶體驗非常重要。

紙帶/紙卡

早期機械設備,用齒輪,旋轉和開關等機械結構來輸入輸出。這些就是交互界面。
甚至早期電子計算機,比如Colossus和ENIAC,也是用一大堆機械面板和線來操作。輸入一個程序可能要幾個星期,還沒提運行時間。運行完畢後想拿出數據,一般是打印到紙上。打印機超有用,甚至,查爾斯●巴貝奇(由於提出差分機和分析機的設計概念,被視爲計算機先驅) 給差分機專門設計了一個。
然而,到1950年代,機械輸入完全消失,因爲出現了打孔紙帶和磁帶,但輸出仍然是打印到紙上。還有大量的指示燈,在運行中提供實時反饋。
那個時代的特點是 儘可能遷就機器,對人類好不好用是其次。打孔紙帶,就是爲了方便計算機讀取,紙帶是連續的,方便機器處理,紙孔可以方便的,用機械或光學手段識別,紙孔可以編碼程序和數據,當然,人類不是以紙孔方式思考的,所以負擔放到了程序員身上。要花額外時間和精力轉成計算機能理解的格式,一般需要額外人員和設備幫忙,基本上1950年前的早期計算機“輸入”的概念很原始。
人類負責輸入程序和數據但計算機不會交互式迴應。程序開始運行後會一直運行,直到結束。因爲機器太貴了,不能等人類慢慢敲命令和給數據。要同時放入程序和數據。

一方面,小型計算機變得足夠便宜,讓人類來回計算機交互,變得可以接受。交互式就是人和計算機來回溝通。另一方面,大型計算機變得更快,能同時支持多個程序和多個用戶,這叫“多任務”和“分時系統”,但交互式操作時,計算機需要某種方法來獲得用戶輸入。所以借用了當時已經存在的數據錄入機制:鍵盤。

當時,打字機已經存在了幾個世紀了,但現代打字機是肖爾斯 在1868年發明的,雖然到1874年才完成設計和製造,但之後取得了商業成功,肖爾斯的打字機用了不同尋常的佈局,QWERTY,名字來自鍵盤左上角按鍵。
爲什麼這麼設計,最流行的理論是,這樣設計是爲了,把常見字母放得遠一些,避免按鍵卡住。這個解釋雖然省事,但可能是錯誤的,或至少不夠全面。事實上,QWERTY把很多常見字母放一起,比如THER。有很多鍵盤版本出現,但是人們不想再去學習新的佈局,這是經濟學家所說的,轉換成本。QWERTY不是通用的,有很多變體,比如法國AZERTY佈局,以及中歐常見的QWERTZ佈局。

clipboard.png

clipboard.png

法國AZERTY:
clipboard.png

中歐QWERTZ
clipboard.png

有趣的是,肖爾斯根本沒想到打字會比手寫快,手寫速度大約是每分鐘20個,打字機主要爲了易讀性和標準化,而不是速度。然而隨着打字機成爲辦公室標配,對速度打字的渴望越來越大。
有兩個重大進步,解放了打字潛力,1880年左右,伊麗莎白●郎利 老師,開始推廣 十指打字,比一個手指打字要移動的距離短得多,所以速度更快。幾年後,弗蘭克●愛德華●麥克格林,學會了盲打,打字時不用看鍵盤,之後“十指盲打”就開始流行。
雖然,人類擅長用打字機,但沒辦法把打字機塞到計算機前面,讓它打字,所以早期計算機用了一種特殊的打字機,是專門用來發電報的,叫“電傳打字機”。

這些打字機是強化過的,可以用電報線發送和接收文本,按一個字母,信號會通過電報線,發到另一端。另一端的電傳打字機會打出來。使得兩個人可以長距離溝通。
因爲電傳打字機有電子接口,稍作修改就能用於計算機,電傳交互界面在1960~1970年很常見。

用起來很簡單,輸入一個命令,按回車,然後計算機會輸回來。用戶和計算機來回“對話”。這叫“命令行界面”,它是最主要的人機交互方式,一直到1980年代。

clipboard.png

用電傳打字機的命令行交互 類似這樣:
用戶可以輸入各種命令,先看當前目錄有什麼文件,輸入命令ls,名字來自list的縮寫,然後計算機會列出 當前目錄裏所有文件。

clipboard.png

  • 早期,機械面板和線,輸入;紙上,輸出。
  • 1950年代,打孔紙帶和磁帶,輸入;紙上,輸出。
  • 鍵盤,十指盲打。
  • 電傳打字機,電傳交互界面。
  • 電傳打字機的命令行交互。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章