1. 程式人生 > >冷知識!——都是數字,為何電話機和計算機的鍵盤的排列卻是相反的?

冷知識!——都是數字,為何電話機和計算機的鍵盤的排列卻是相反的?

不知道大家有沒有特別留意過電話和計算器的數字鍵盤?也許我們當中許多人都已經非常習慣它們的排列方式以至於忽略了兩者之間的差別。在計算器的數字鍵盤頂部,是7-8-9,而電話上的數字鍵盤上,最頂部的三個數字是1-2-3。

 

△ 電話(左)和計算器(右)

【加入程式設計學習群(C/C++群:892643663;Java群:957907127),大牛線上為您提供服務,還有免費編譯大禮包和視訊教程贈送哦】

這種差異很微妙,但是也令人費解。因為它們服務於一個完全相同的目標,那就是輸入數字。如果使用者可以以相同的方式,在相同的介面當中輸入的話,那麼使用者就沒有必要在不同的狀況下適應兩種不同的輸入模式了。按照我們的常識,出現這樣的局面,通常是因為技術上的限制,可能是發明者之間的專利戰,當然,也有人認為這種差異是因為「人體工程學」上的差異。

由於缺少非常明確的解釋,我們只能在歷史中,從相關的硬體裝置的發展歷程中尋找答案了。到底是哪種鍵盤排布更早出現?是哪一種設計影響了另外一種?更重要的問題在於,到底是誰現發明了這種數字鍵盤?

 

打字機、收銀機和計算器

 

重頭審視整個數字鍵盤的發展歷程,我對於數字鍵盤何時系統化的引入非常感興趣。數字鍵盤嚴格意義上是在第一次工業革命和第二次工業革命之間(從1820年到1920年)逐漸普及開的,一些發明家在18世紀末期的時候開始摸索並嘗試製造出類似於鋼琴一樣的鍵盤機械。

然而,直到1844年,一位名叫 Jean-Baptiste Schwilguć 的法國人才真正意義上製造出了一個使用鍵盤驅動的計算裝置的原型,這臺機器第一次使用了數字鍵盤,並且這個鍵盤上只使用了數字鍵 1 到 9 (Dalakov,2018)

不過,坦率的講,我們繞不開另外兩個號稱發明了數字鍵盤的老前輩,據報道,Luigi Torchi 在1834年展示過一個木質的計算器原型,而1822年的時候, 作James White 在新世紀發明展上展示了一個帶有9個數字鍵的鍵盤裝置。不過,他倆的東西都沒有經受住時間的考驗,也沒有證據表明他們的這些所謂的鍵盤不是臆想出來的。(Durant,2011)

△ Jean-Baptiste Schwilguć 的數字鍵盤 (1844)

△ James White 的鍵盤佈局 (1822)

 

儘管如此,即使 James White 的機械鍵盤有待考證,但是它仍然可以被視作為最早的現代可「直接操控」的互動介面。這個硬體互動介面允許使用者直接進行操控,而無需同其他的傳統機械機構作為補充(比如當時的時鐘需要藉助槓桿旋鈕來操作),與之構成鮮明對比的是 Pascaline 的 Arithmometers 陣列,外露的複雜機械構造使得操控非常的複雜。

 

 

然而,這些「構想」仍然沒法解釋和證明現代的數字鍵盤會出現正反兩種不同的數字排布方式。

有理論指出,計算器的設計最早是源自於收銀機的設計。仔細想想,在那個整個貨幣體系和交易系統當中,通常的金額數字都不會太大,也意味著帶0的數額都非常重要,數字0的重要性就不言而喻了,因此,將數字0置於鍵盤底部非常符合當年的操作習慣。(Durant,2011)

雖然這樣的解釋有一定的道理,但是它仍然存在諸多謬誤,比如數字0需要伸手可及的理論依據就不是非常具有說服力。特別值得注意的是,早期的收銀機(直到1893年)都沒有單獨的數字0鍵,沒有抽屜,也沒有工人站在收銀機的後面。

為了進行更加有效的論證,我們有必要看看收銀機的誕生過程。

1879 年,James Ritty 在美國俄亥俄洲 Dayton 擁有一家沙龍,他發現自己的員工會在工作中偷錢。James 曾經見過一個計算汽船的螺旋槳轉數的工具之後,在此基礎上發明了一種用來計數的、帶有數字鍵的機器(Dalakov,2018),這就是如今收銀機的前身。這東西一開始就不是為了計算而誕生的,只是幫助經理記錄收入,並且防止員工偷錢的。

直到1893年,最早的記錄式收銀機誕生了,它擁有兩排數字鍵,除了基本的數字 1-9 的按鍵之外,還有包括10、15、20 、30、35等預設數值,他們對應商店中銷售的商品的價格,以美分為單位。直到 1894年的 NCR 79 型才引入了三行垂直排布的數字鍵盤。

△ Ritty 最早的收銀機,發明於1883年

【加入程式設計學習群(C/C++群:892643663;Java群:957907127),大牛線上為您提供服務,還有免費編譯大禮包和視訊教程贈送哦】

有證據表明,垂直式的數字鍵盤很早就誕生了。

1884年,Dorr Felt 有過一個很不錯的想法,他構思了一個能夠解決大量數字處理的機器。這個想法是基於前面所說的 Pasacline 的機制,採用 Thomas Mill 的機器佈局外加通心粉盒的設計。Dorr 將它稱為 Comptometer,它是一個擁有8列鍵盤的裝置,數字從上到下依次遞減,每行數字都相同,其中列代表的是不同的數位。值得注意的是,數字0仍然不存在於鍵盤數字序列當中。(Dalakov,2018)

收銀機的改進仍然在推進中。

△ Comptometer 的鍵盤佈局,發明於1885年

 

其實這也是事情開始變得有趣的地方。為什麼 Felt 會選擇這種數字 9~1 是逆序排布的鍵盤呢?這在當時並不是一個非常直覺的設計,也不符合普遍的認知。畢竟,那還是一個數字計算知識並不普及的年代。

一個合理的答案是,這種設計可能和某些機械決策機制有關係。按鍵連線著槓桿,較大的數字意味著更大的槓桿臂長和更大的旋轉角度,而這個概念就來源於 Parmelee 。

另外一個有趣的解釋則超出了機械的範疇,這是一個更加貼合現代設計的解讀。Comptometer 的說明手冊上提到,操作員在使用這套系統的時候,應該使用較低的數值相加來輸入更高的數值。舉個例子,如果要輸入「9美分」,操作員沒有必要去按最右側一欄頂上的按鍵9,而可以直接按這一欄的4和5兩個按鍵,機器自己會執行數學運算。因為鍵盤的面積比較大,直接去按右側頂上的數字9,手的運動距離太遠了,相反底部的按鍵會更容易觸及,也更容易操作,執行速度更快。這種設計相比之下,效率更高。雖然這種按鍵佈局是「以使用者為中心的設計」,但是它依然不被認為是對使用者友好的介面。(Meehan,1952)

Comptometer 需要訓練有素的操作員才能最大程度地發揮出它的生產力。甚至於使用一隻手都很難操作,尤其是需要錄入較多資料的時候。

1902年,仍然使用過時多列布局的 Dalton 成為了當時最受歡迎的加法計算器之一,10個數字終於在這個裝置上備齊了。 Dalton 是後來打字機的雛形,有著2排按鍵,每排5個按鍵,不過鍵盤的按鍵排布很奇怪,上面一排是24579,下面一排是13068,到目前為止,還很難看出這種排布有什麼深意。(Durant,2011)

不過最重要的在於,數字0終於出現在鍵盤當中了!

Dalton 的鍵位設計雖然有點神奇,但是它將列印裝置和計算器集合到了一起,並且尺寸還很小,這使得世界各地的簿記員為此歡欣鼓舞。(Dalakov,2018)

【加入程式設計學習群(C/C++群:892643663;Java群:957907127),大牛線上為您提供服務,還有免費編譯大禮包和視訊教程贈送哦】

進一步的發展

 

在1914年的時候,出生於瑞典的美國人 David Sundstrand ,以 Sundstrand Corporation 的名義提交了一個專利號為 No.1198487 的專利,這一專利是旨在進一步提高這些計算機械的可用性,他用一種「更加富有邏輯、更加自然的方式」重新排布了鍵盤鍵位,讓它以 3×3 的佈局來呈現數字 1~9 ,頂部數字是 789,而底部數字是 123,最下方中間放置了數字 0。這使得整個鍵盤非常集中,足以單手操作,成為了「所有計算裝置中鍵盤最快速易用的」。

即使是在100多年後的今天,這個鍵盤佈局依然是計算器的標準佈局。

 

△ Dalton 的10按鍵加法計算器,1902年

△ Sundstrand 的10按鍵加法計算器,1914年

 

從計算器到電話

 

計算器的發展歷程是否最終影響到現代電話和手機的數字鍵盤佈局呢?這並沒有一個直接的答案。貝爾電話公司是長途電話技術的發明和推廣者,它們早在1887年的時候就已經開始嘗試使用按鍵式電話了,而在這個階段,甚至旋轉撥盤式的撥號電話還沒出現。最早的旋轉撥盤式電話是在1892年的時候,由 Almon Brown Strowger 所設計的。 Western Electric 最終在1919年的時候將貝爾電話公司的這款電話商業化投產,不過由於當時的按鍵僅僅只是快捷按鈕,並不和數字繫結,因此並沒有完全流行開。

直到20世紀50年代,直接使用按鍵撥號的電話才逐漸普及開來。而之前本地電話號碼通常只有6位數甚至更少,直到這個時候才擴充套件為標準的7位數電話號碼,而跨區域的長途電話則為11位,其中數字 1 通常是第一個數字。

隨著電話號碼長度的增加,撥錯號碼,打錯電話的機率暴增,這導致當時的 AT&T 的工程師開始思考,是否是因為當時電話的電話鍵盤的設計原因導致的。(圖片如下)

△ 20世紀50年代運營商收費電話上的數字按鍵佈局

 

在1955年的研究報告《關於十鍵位數字按鍵佈局研究》釋出之後,1960年又有了一份名為《按鈕電話中人類因素的工程學設計和研究》的分析報告,這些調研都是針對電話按鍵佈局進行了分析和探討。隨後,AT&T 開始了一個名為 Touch Tone 的新專案,這個專案同樣是探索各種按鍵佈局對於電話使用的影響,他們試圖在這當中找到最適合使用者的數字按鍵佈局。(Deininger,1960)

△ 1960年電話按鍵佈局測試中涉及到的各種佈局組合

 

AT&T 測試了15種佈局,奇怪的對角線式佈局,奇葩的金字塔布局,復古的圓形佈局,IBM Model 011 打卡機式的佈局,包括現在我們最常見的正向九宮格佈局和計算器上的反向九宮格佈局。令人驚訝的地方在於,計算器式的反向九宮格數字鍵盤佈局效果並不佳,與之形成鮮明對比的是我們現在所用到的正向九宮格數字鍵盤,10個數字從上到下,自左向右地排布。(Deininger,1960)

在整個測試當中,2行5列式的橫版佈局(5-5-H)和上面所說到的正向九宮格佈局(3X3+1)式的佈局,使用者在輸入的時候速度幾乎一樣快,差別非常小。最終,AT&T 選擇了九宮格佈局來作為大規模普及的電話數字鍵盤,這可能是因為這種佈局更加緊湊,功能也相對更多。

整個研究進行到這個時候,其實並沒有給出一個非常精準的答案。值得注意的是,在英國電話公司選擇了5-5-H式的佈局,這有可能是出於專利保護的原因。

△ 英國電話的5-5-H橫向佈局,20世紀60年代

 

△ IBM Model 011 ,早期的10鍵打卡機之一,20世紀40年代

 

設計決策和慣例

 

真實的設計決策涉及到諸多因素,包括技術和技術本身的侷限性,人體工程學,使用者感知,以及對於現有模式的熟悉程度。最後的這個因素其實是最強的標準,因為它常常構成了人們在數字時代最常見的選擇。在今天,設計師不再受到那麼多的物理因素的影響,在虛擬的螢幕空間上,設計師的創造力可以得到最大程度的發揮。但是,當你開啟任何一臺 iOS 或者 Android 裝置,你會發現其中的數字鍵盤和一個世紀之前的設計保持著高度的一致。

這是為什麼?數字應用仍然遵循這基本和原始的慣例,原因在於人們寧願和熟悉的介面打交道,而不是學習新的東西。

實際上,最有趣的地方在於,在早期的作業系統當中,無論是 Android 還是 iOS 都使用了電話的九宮格式的數字鍵盤來作為網頁中數字輸入鍵盤(參考下面的截圖,最新的 iOS 會使用帶有特殊字元的鍵盤)。另一方面,Oculus Go 則不同,數字鍵盤採用了計算器的鍵盤佈局(我在 Web 應用中測試它)。

△ 左邊是 Android 6,右邊是 iOS 9

△ Oculus Go 鍵盤,2018

那麼,為什麼 Google 和蘋果在設計系統的時候,紛紛選擇了電話數字鍵盤,而非計算器數字鍵盤呢?隨後還使用了數字和字母鍵盤在一起的混合鍵盤又是什麼原因呢?而 VR 裝置中,或者手機當中,為什麼不設計一個針對拇指互動專門優化過的特殊數字鍵盤呢?這兩種數字輸入方式其實在速度上都一般,唯一的優勢是可讀性尚佳,而更可能的原因是它足夠深入人心,以及它們是成熟的模式,維護成本低,複用性強,所以智慧手機保留了電話鍵盤的傳統,而 Oculus、Xbox 則選擇繼承計算器和桌面式輸入裝置的傳統。


 

時間軸:

  • 1642: Blaise Pascal 的計算器

  • 1822: James White 設計了鍵盤驅動式概念計算器

  • 1844: Schwilguc 的機器被髮明出來,擁有歷史上最早的數字鍵盤

  • 1857: Thomas Hill 的計算機械,計算器的鼻祖

  • 1874: E. Remington & Sons 開始製造和銷售 Sholes & Glidden Type Writer 的後續款

  • 1879: Rittey 發明了最早的收銀機

  • 1885: Comptometer,最早使用9-1式縱向佈局的加法計算器

  • 1887: 按鈕式小型電話的早期原型被設計出來

  • 1887: Cash register Model 79 誕生,採用了垂直列式鍵盤佈局

  • 1902: Dalton,首款包含數字 0 的機械裝置

  • 1914: Sundstrand,最早採用 3X3+1 式 10 鍵佈局的機械裝置

  • 1919: Western Electric 和 AT&T 推出旋轉撥號式電話

  • 1940: IBM 設計出了10數字鍵的硬體裝置,其中數字鍵123 在頂部

  • 1955: AT&T 開始測試按鍵式電話

  • 1963: Bells 推出了帶有10個數字鍵的電話

  • 1963: Canon 製作了首款帶有發光液晶顯示屏的電子計算器

  • 1966: Sharp/Facit 推出了商品化的帶有發光液晶顯示屏的計算器

  • 2007: Apple 釋出 iPhone,內建了計算器應用

原文作者 : Francesco Bertelli  譯者 : 陳子木

轉發是最大的支援。評論區等你!

【加入程式設計學習群(C/C++群:892643663;Java群:957907127),大牛線上為您提供服務,還有免費編譯大禮包和視訊教程贈送哦】

騰訊課堂線上C/C++免費公開課地址:http://ke.qq.com/course/348272?term_id=100414194&from=41&enter_room=1