當(dāng)前位置:
首頁(yè) >
CLI or GUI --- 要高效还是要易用? (该文作者的功底真的很深厚啊)
發(fā)布時(shí)間:2024/4/18
66
豆豆
生活随笔
收集整理的這篇文章主要介紹了
CLI or GUI --- 要高效还是要易用? (该文作者的功底真的很深厚啊)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄(?)
[+]
? ?這篇文章很棒 轉(zhuǎn)載過(guò)來(lái)欣賞地址httpwwwcnitblogcomaddonearchive2008010838581html ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??要高效還是要易用談CLI與GUI 前言 定義 談一些奇怪的論點(diǎn) 兩者的特點(diǎn) CLI的哲學(xué) GUI的哲學(xué) 協(xié)同工作 總結(jié)
? ? ? 首先,先聲明一下本人的立場(chǎng)。我個(gè)人希望自己是站在一個(gè)比較中立的角度上看的。但實(shí)際應(yīng)用上,我用圖形界面的時(shí)間遠(yuǎn)遠(yuǎn)超過(guò)命令行界面,所以看問(wèn)題難免會(huì)有一些偏頗,請(qǐng)讀者見諒。
? ? ? ?其次,本文的目的,不是對(duì)GUI和CLI進(jìn)行比較從而得出何者更佳的結(jié)論,而是希望探討一下為何關(guān)于兩者的討論會(huì)演變成一種對(duì)立的狀況,以及試圖觸及一下兩種界面方式所代表的截然不同的哲學(xué)觀。本文熱烈歡迎全文轉(zhuǎn)載,懇請(qǐng)注明出處。
? ? ?而CLI則自然是指主要以文本方式作為工作元素,并主要以鍵盤作為輸入工具的工作方式。CLI采用直接輸入命令和參數(shù)的方式直接向計(jì)算機(jī)發(fā)送各種指令,通過(guò)組織參數(shù)和命令的輸入方法來(lái)試圖提高工作效率。CLI中同樣可以采用圖形組件以使得界面更為美觀,但這些圖形組件并不像GUI中的那樣具備實(shí)際的命令功能(否則就不該稱為CLI了)。
? ? ? 讓我們來(lái)看看這個(gè)軟件。這是一個(gè)著名的GUI軟件的默認(rèn)界面。說(shuō)起GUI易用性,大概很多人都能猜到我會(huì)選擇這個(gè)軟件作為反面教材。
圖1:不那么易用的GUI
? ? ? ?很顯然,這種將按鈕隱藏起來(lái)的設(shè)計(jì)是為了使得界面更加美觀和簡(jiǎn)潔。但這種設(shè)計(jì)實(shí)際上大大降低了軟件的易用性和效率。我相信沒(méi)有什么人愿意通過(guò)先找到那個(gè)用來(lái)顯示按鈕的按鈕,點(diǎn)一下,再找到剪切、復(fù)制或粘貼按鈕,以此來(lái)實(shí)現(xiàn)剪貼功能。事實(shí)上,大多數(shù)人會(huì)使用快捷鍵的方式。?
? ? ? ?像Office這類功能非常復(fù)雜的軟件,設(shè)計(jì)一個(gè)良好的GUI界面會(huì)非常費(fèi)神,其設(shè)計(jì)難度不亞于一個(gè)集成開發(fā)環(huán)境(IDE,Intergrated Developing Environment)。但復(fù)雜性不應(yīng)該是界面設(shè)計(jì)糟糕的借口。如上例,事實(shí)上用戶根本無(wú)法選擇哪個(gè)按鈕應(yīng)該隱藏,哪個(gè)不該。把剪切、復(fù)制、粘貼、格式刷這樣常用的按鈕隱藏起來(lái)的唯一作用,就是敦促用戶通過(guò)快捷鍵而非按鈕去使用這些功能。不過(guò)既然如此,又何必把這些功能做成按鈕呢?直接拿掉不是更簡(jiǎn)潔么??
? ? ?同樣,并非所有的CLI軟件都是高效的。以下是一個(gè)著名的CLI軟件的一部分?
?ffmpeg.exe?-i?"D:\Video\Fearless\Fearless.avi"
?-target?film-dvd?-s?720x352
?-padtop?64?-padbottom?64?-maxrate?7350000
?-b?3700000?-sc_threshold?1000000000
?-trellis?-cgop?-g?12?-bf?2?-qblur?0.3?-qcomp?0.7
?-me?full?-dc?10?-mbd?2
?-aspect?16:9?-pass?2?-passlogfile?"D:\Video\ffmpegencode"
?-an?-f?mpeg2video?"D:\Fearless.m2v"
? ? ? ? 如果用戶是要使用完全相同的參數(shù)進(jìn)行大量的批量轉(zhuǎn)換,以上命令也還勉強(qiáng)算得上“高效”。因?yàn)槭聦?shí)上,如果是需要經(jīng)常使用的話,用戶通常并不會(huì)選擇每次都輸入這堆參數(shù),而會(huì)使用腳本的方式把以上的命令“包裝”起來(lái),以便于將來(lái)的調(diào)用。但實(shí)際情形則常常更為復(fù)雜,用戶實(shí)際上很少使用完全同樣的選項(xiàng)進(jìn)行轉(zhuǎn)換,而進(jìn)行“微調(diào)”則會(huì)成為一件很麻煩的事情,于是就會(huì)出現(xiàn)把腳本“包裝”起來(lái)以提供更靈活的微調(diào)功能的腳本,如此周而復(fù)始,層層包裹。
? ? ? ?對(duì)于這類軟件來(lái)說(shuō),由于所提供的功能選項(xiàng)非常豐富,設(shè)計(jì)參數(shù)列表和設(shè)計(jì)GUI同樣是一件很麻煩的事情。CLI實(shí)質(zhì)上是通過(guò)簡(jiǎn)化操作步驟和提供批量處理選項(xiàng),來(lái)提高進(jìn)行重復(fù)工作時(shí)的操作效率的。如果這個(gè)軟件使用的機(jī)會(huì)并不多,而且每次使用時(shí)的選項(xiàng)都不完全一致,那么不僅不易用,而且也很難“高效”起來(lái)。
? ? ? GUI由于采用了大量的圖形元素,界面會(huì)更顯得具有藝術(shù)性,富有人性化。相較于枯燥的文本來(lái)說(shuō),精致且合理的圖形大大增強(qiáng)了界面的易用性。
圖2: 漂亮的GUI
? ? ? ?GUI所提供的像單選框、多選框這樣的簡(jiǎn)潔明了的圖形控件使得軟件操作起來(lái)更為直觀。
圖3: 偉大的設(shè)計(jì)——GUI控件
? ? ? 相較于GUI而言,CLI通常就不具備什么美觀程度了。為了提高性能,CLI通常采用純文本方式工作。
圖4: 一片漆黑的經(jīng)典CLI界面
? ? ? 當(dāng)然,也有例外的。
圖5: 現(xiàn)代Linux上的常見CLI界面
? ? ? 為了提高工作效率,CLI通常都能夠以很自然的方式支持批量操作。例如刪除當(dāng)前目錄下的所有obj文件:
rm?*.obj
? ? ? 這種精確的指令可以保證得到嚴(yán)格執(zhí)行,不會(huì)像采用GUI方式一樣,說(shuō)不定一個(gè)不小心會(huì)漏掉了一兩個(gè)文件。
? ? ? 由于使用了文本方式直接輸入命令,描述起來(lái)也比GUI方式輕松得多。例如前面所示命令行的操作,如果需要以GUI方式描述出來(lái)的話,少不了一大堆截圖,否則很難讓廣大的菜鳥從浩如煙海的選項(xiàng)中找到自己真正所需要的東西。
? ? ? 最后要提一下快捷鍵。快捷鍵取材于CLI,實(shí)質(zhì)上是一種直接向系統(tǒng)發(fā)送指令的操作方式,但由于依賴于GUI,我把它歸為GUI的工作元素,并視為GUI為提高工作效率而向CLI所作的折衷,下文會(huì)詳細(xì)說(shuō)明這一點(diǎn)。
? ? ? 由于主要使用文本作為界面,CLI軟件對(duì)計(jì)算機(jī)的要求也低得多,在同等配置的機(jī)器上也要比GUI軟件的性能好得多。也正因此,CLI軟件得以在廣大的服務(wù)器系統(tǒng)上大行其道,在這些系統(tǒng)上,性能是最重要的。同時(shí),由于具備了比GUI軟件好得多的可伸縮性,CLI的適用范圍也遠(yuǎn)比GUI廣泛,在很多嵌入式平臺(tái)上,我們甚至只能看到CLI的身影。
? ? ? 但畢竟人不是計(jì)算機(jī),符合計(jì)算機(jī)的工作方式的同時(shí)也就意味著不那么人性化。為了用好一個(gè)CLI軟件,用戶不得不反反復(fù)復(fù)地查閱參數(shù)手冊(cè),有時(shí)還需要做各種參數(shù)組合的測(cè)試。而且如前所述,對(duì)于一些參數(shù)復(fù)雜的CLI軟件,用起來(lái)是頗為令人頭痛的,甚至有時(shí)根本就無(wú)法發(fā)揮CLI本身應(yīng)有的“高效”。
? ? ? 另外,對(duì)于CLI軟件來(lái)說(shuō),執(zhí)行結(jié)果往往并不是那么清晰的。用戶常常不得不面對(duì)滿屏滾動(dòng)的反饋信息體驗(yàn)黑客帝國(guó)一般的快感,或者是仿效真正的黑客一般從浩瀚的log海洋中尋覓那條絲毫不起眼的提示信息。
? ? ?有人把CLI軟件的工作方式稱為“WYTIWYG”(What You Think Is What You Get,所想即所得)。這種方式的特點(diǎn)在于,雖然沒(méi)有直觀地反應(yīng)出執(zhí)行結(jié)果,但卻能保證執(zhí)行結(jié)果可以和你的意圖一致。從某種程度上來(lái)說(shuō),這種說(shuō)法是正確的,因?yàn)橛脩舻囊鈭D總是以命令+參數(shù)的方式精確地傳遞給系統(tǒng),最后雖然不能直觀地看到執(zhí)行結(jié)果,卻總能發(fā)現(xiàn)系統(tǒng)已經(jīng)出色并嚴(yán)格地完成了工作。但從某種意義上來(lái)說(shuō),這種說(shuō)法是不準(zhǔn)確的,因?yàn)楫?dāng)面對(duì)著長(zhǎng)長(zhǎng)的參數(shù)手冊(cè)時(shí),用戶往往已經(jīng)搞不清自己的意圖到底是什么了。
? ? ?GUI的設(shè)計(jì)目標(biāo)就是為了擺脫CLI的弊病,把軟件的輸入和輸出都以更為人性化的形式來(lái)展現(xiàn),從而使得軟件更為易用和直觀。從這種意義上來(lái)說(shuō),GUI的出現(xiàn),可以看作是一種“進(jìn)步”。通過(guò)提供一組圖形“控件”,用戶得以以更為自然的方式與計(jì)算機(jī)進(jìn)行互動(dòng)。通過(guò)簡(jiǎn)潔明了的圖標(biāo),用戶可以對(duì)軟件的功能一目了然。通過(guò)使用新的輸入設(shè)備——鼠標(biāo),用戶可以以更符合人類習(xí)慣的方式“Point & Click”,舒服地向計(jì)算機(jī)傳遞各種指令。不難想象,GUI的出現(xiàn)對(duì)于計(jì)算機(jī)的發(fā)展來(lái)說(shuō),不啻于一場(chǎng)偉大的革命。
? ? ?GUI軟件可以通過(guò)使用大量的圖形元素和圖形特效,從根本上改變軟件的表現(xiàn)形式,“美觀”和“人性化”漸漸成為軟件界面設(shè)計(jì)的討論主題。隨著計(jì)算機(jī)處理能力的發(fā)展,我們甚至能夠以3D的形式來(lái)呈現(xiàn)和操作軟件。大量GUI軟件的出現(xiàn)大大降低了學(xué)習(xí)和使用計(jì)算機(jī)的門檻,賞心悅目的操作界面吸引了各行各業(yè)的人投入其中。如果說(shuō)CLI適應(yīng)了各種各樣的計(jì)算機(jī),GUI則適應(yīng)了各種各樣的人。可以說(shuō),要是沒(méi)有GUI,也就沒(méi)有今天如此繁盛的計(jì)算機(jī)產(chǎn)業(yè)。GUI的出現(xiàn)順應(yīng)了人們的需求,也是歷史的必然。
? ? ? 然而無(wú)論多么精美的界面,電腦程序就是電腦程序,其本質(zhì)上卻還是需要通過(guò)“命令”傳遞給計(jì)算機(jī)才能發(fā)揮作用的。由于中間需要進(jìn)行“人的習(xí)慣”到“計(jì)算機(jī)的習(xí)慣”的轉(zhuǎn)換,GUI軟件不可能做到如CLI軟件一般的高效和精確。可以說(shuō),GUI避免了CLI的弊端,但CLI的優(yōu)點(diǎn)卻恰恰成為了GUI的缺點(diǎn)。
? ? ?由于大量圖形元素的使用,GUI軟件帶動(dòng)了計(jì)算機(jī)硬件的發(fā)展,人們對(duì)良好界面的追求推動(dòng)了計(jì)算機(jī)處理能力的飛速發(fā)展。但這同時(shí)也說(shuō)明GUI軟件對(duì)計(jì)算機(jī)硬件的依賴性很強(qiáng),在需要將GUI軟件移植到其他平臺(tái)時(shí),這種依賴性的弊端就會(huì)凸現(xiàn)出來(lái)。而且即使是在同一平臺(tái)上,GUI軟件所耗費(fèi)的資源要比相同功能的CLI軟件高得多,但所能達(dá)到的性能則要低得多。盡管GUI提供了良好的易用性,極大地填補(bǔ)了人機(jī)對(duì)話的鴻溝,但在另一方面看來(lái),實(shí)際上增加了軟件開發(fā)的成本,縮小了軟件的適用范圍,同時(shí)降低了軟件的工作性能。
? ? ?由于能夠以非常靈活的方式進(jìn)行設(shè)計(jì),GUI軟件的表現(xiàn)形式也是千差萬(wàn)別。這本來(lái)是件好事情,但由于存在太多的GUI設(shè)計(jì)方式,開發(fā)人員在設(shè)計(jì)復(fù)雜的GUI軟件時(shí)往往會(huì)陷入一種無(wú)所適從的困境。為了設(shè)計(jì)出真正易用好用的GUI軟件,開發(fā)商往往不得不求助于藝術(shù)家和心理學(xué)家,甚至不惜采用“仿真”的方式來(lái)設(shè)計(jì)軟件界面,這大大增加了軟件開發(fā)的成本。盡管因此帶動(dòng)了計(jì)算機(jī)圖形學(xué)和人機(jī)界面設(shè)計(jì)學(xué)的發(fā)展,但更多的“無(wú)良”開發(fā)商基于成本的考慮,選擇了濫竽充數(shù)得過(guò)且過(guò),無(wú)視用戶的操作習(xí)慣和軟件的易用性,甚至創(chuàng)造出一些難以使用的“GUI”,企圖用更符合自身利益的界面設(shè)計(jì)來(lái)“改善”用戶本身自然的“習(xí)慣”和“體驗(yàn)”,如上面所提到的那個(gè)著名的GUI軟件。以操作系統(tǒng)開發(fā)商為例,可以說(shuō),如今最能堅(jiān)守易用性陣地的當(dāng)屬蘋果公司。盡管其產(chǎn)品同樣存在一些瑕疵,但直到今天,蘋果公司仍然堅(jiān)持發(fā)展人機(jī)界面設(shè)計(jì)學(xué),其創(chuàng)造的GUI軟件大都是藝術(shù)性和易用性結(jié)合的典范。而在微軟Windows系統(tǒng)橫行的國(guó)內(nèi),在其所推行的“廉價(jià)GUI”的理念影響下,能以謹(jǐn)慎的態(tài)度學(xué)習(xí)和應(yīng)用哪怕是“圖標(biāo)設(shè)計(jì)學(xué)”的人都已經(jīng)幾乎絕跡了。這在實(shí)際上導(dǎo)致了部分用戶對(duì)GUI的反感和抵觸。
圖6:“仿真”式的GUI軟件
圖7:不同操作系統(tǒng)對(duì)“圖標(biāo)一致性”的不同理解
(注:復(fù)合式圖標(biāo)設(shè)計(jì)的一個(gè)基本原則是,圖標(biāo)的基本部分能夠清楚地表明項(xiàng)目的大類。圖中所列出的圖標(biāo)均為文檔項(xiàng)目,但Windows的圖標(biāo)基本上沒(méi)有遵循這個(gè)原則。KDE的圖標(biāo)基本遵循,但使用的不同色彩容易引起混淆。而Mac本身的圖標(biāo)系統(tǒng)就直接支持復(fù)合圖標(biāo),因此這些圖標(biāo)的疊加工作實(shí)際上是直接由系統(tǒng)完成的。)?
? ? ? 和CLI相對(duì)的,GUI的哲學(xué)是“WYSIWYG”(What You See Is What You Get,所見即所得),用戶以自己所習(xí)慣的方式向系統(tǒng)傳遞指令,并可以立刻在屏幕上以最自然的方式看到執(zhí)行結(jié)果,系統(tǒng)可以保證展示出來(lái)的東西和實(shí)際處理(如打印、渲染)后的結(jié)果基本保持一致。不過(guò)這事實(shí)上僅僅是GUI的一個(gè)設(shè)計(jì)目標(biāo),很多軟件是根本達(dá)不到令人滿意的效果的。而且對(duì)于用戶來(lái)說(shuō),如何能把心目中的藍(lán)圖展現(xiàn)在計(jì)算機(jī)上,即使是在GUI高度發(fā)達(dá)的今天,也還同樣是個(gè)問(wèn)題。
? ? ?Linux在繼承了Unix的血統(tǒng)的同時(shí),也繼承了其龐大的CLI軟件基礎(chǔ)(這種說(shuō)法很不準(zhǔn)確,姑且這么說(shuō)吧),這跟早期Linux主要應(yīng)用在服務(wù)器市場(chǎng)上有關(guān)。隨著Linux系統(tǒng)被越來(lái)越多地應(yīng)用到桌面市場(chǎng)上,對(duì)Linux下GUI軟件的呼聲也越來(lái)越高,也由此而引發(fā)了一系列關(guān)于Linux系統(tǒng)的爭(zhēng)議,例如“Linux不是Windows”、“Linux根本不適合用作桌面系統(tǒng)”、“現(xiàn)在的Linux已經(jīng)不再是Linux了”、“Linux就應(yīng)該做自己的服務(wù)器,不該到桌面市場(chǎng)瞎摻和”。很多人都忘記了Linux僅僅是一個(gè)系統(tǒng)核心而已,這不僅能說(shuō)明為何Linux核心會(huì)如此優(yōu)秀,也能說(shuō)明為何Linux會(huì)具有驚人的伸縮性。Linux核心既能夠和Unix移植過(guò)來(lái)的大量CLI軟件一起組成一個(gè)穩(wěn)固的服務(wù)器系統(tǒng),自然也能夠搭載各種GUI軟件從而組成一個(gè)漂亮的桌面系統(tǒng),這兩者并不矛盾。
? ? ? ?有些跑題了,但從上面的描述可以看出,Linux進(jìn)入桌面領(lǐng)域的時(shí)間不長(zhǎng),其基礎(chǔ)則主要是建立在過(guò)去的大量CLI軟件上的。為了在增強(qiáng)Linux的易用性的同時(shí)保留原先的CLI優(yōu)勢(shì),Linux下的許多GUI軟件采用了GUI前端+CLI后端的方式,也就是編寫一個(gè)用于與原CLI軟件進(jìn)行互動(dòng)的GUI軟件,兩者協(xié)同工作。這種工作方式和我們平常所說(shuō)的“前臺(tái)+后臺(tái)”方式并不相同,其CLI部分是一個(gè)獨(dú)立的軟件,而GUI部分則僅僅是該軟件的一個(gè)“Shell”(外殼)而已。GUI部分無(wú)法獨(dú)立工作,而且開發(fā)目的僅僅是為了使該軟件更易用,而并沒(méi)有增加任何功能。
? ? ? 這種引人注目的方式具有很多優(yōu)點(diǎn),并且在最近得到了越來(lái)越廣泛的利用。這種方式結(jié)合了GUI和CLI的優(yōu)點(diǎn),在使得軟件的易用性得到大大增強(qiáng)的同時(shí),其跨平臺(tái)能力以及性能和效率并沒(méi)有受到顯著削弱。由于同一個(gè)后端程序可以搭配不同的各種前端,從而能夠以較低的開發(fā)成本實(shí)現(xiàn)較好的跨平臺(tái)效果。由于前后端的分開,核心開發(fā)人員可以專注于系統(tǒng)性能,而無(wú)需受軟件表現(xiàn)形式和輸入方式的影響;而界面開發(fā)人員也可以無(wú)需關(guān)注核心的實(shí)現(xiàn),只需著力于改善界面的易用性和美觀程度即可。這類系統(tǒng)的耦合度通常較低,用戶甚至可以選擇完全使用CLI來(lái)工作而無(wú)需理會(huì)GUI,這也大大降低了系統(tǒng)的維護(hù)成本。
圖8: 漂亮的前端和強(qiáng)大的后端:Texshop+Texlive
? ? ? ?這是GUI和CLI協(xié)同工作的一個(gè)好例子,但它也同樣存在缺陷。最顯而易見的問(wèn)題在于,對(duì)于很多對(duì)跨平臺(tái)沒(méi)有特別要求的純GUI軟件,為了提高效率而分離并開發(fā)一個(gè)獨(dú)立后端顯得完全沒(méi)有必要。于是,一些開發(fā)商把CLI的一些理念“借”到了GUI軟件中,最常見且有效的莫過(guò)于快捷鍵了。快捷鍵本身實(shí)際上是一種直接使用鍵盤向系統(tǒng)發(fā)送命令的方式,只不過(guò)采用按鍵組合的方式來(lái)代替了傳統(tǒng)的字符串命令,用戶只需記憶各種按鍵組合即可輕松調(diào)用。這種方式既符合GUI的哲學(xué),又引入了CLI的高效,實(shí)在是一大創(chuàng)舉,自誕生伊始就被廣泛采用。如今,一個(gè)成熟完善的GUI軟件已經(jīng)根本離不開設(shè)計(jì)合理的快捷鍵了。
圖9:無(wú)孔不入的快捷鍵
? ? ?盡管快捷鍵在一定程度上提高了GUI的效率,但對(duì)于復(fù)雜的應(yīng)用來(lái)說(shuō)還是很不足夠,一種“類CLI”方式呼之欲出。微軟Office中Word的域命令方式雖然為Word的易用性蒙上了陰影,卻也為Word帶來(lái)了更靈活的工作方式和更強(qiáng)大的功能,我把這種方式稱之為“嵌入GUI中的CLI”。Autodesk公司的AutoCAD則走得更遠(yuǎn),索性大膽地應(yīng)用了GUI和CLI聯(lián)合構(gòu)建的“復(fù)合界面”,用戶需要聯(lián)合使用菜單、按鈕、命令工作,以學(xué)習(xí)難度的增大為代價(jià),帶來(lái)的是軟件功能的強(qiáng)大和Autodesk公司的富有。
圖10:無(wú)所不能的復(fù)合界面
? ?這篇文章很棒, 轉(zhuǎn)載過(guò)來(lái)欣賞!地址:http://www.cnitblog.com/addone/archive/2008/01/08/38581.html
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??要高效還是要易用?——談CLI與GUI
前言
? ? ? 自Linux漸漸風(fēng)行起來(lái),有關(guān)圖形界面(GUI,Graphical User Interface)和命令行界面(CLI,Command Line Interface)之爭(zhēng)就一直鬧個(gè)不停。看了眾多評(píng)論之后,總有些郁悶之意想要發(fā)泄一下,雖然覺(jué)得有混水摸魚的嫌疑,卻還是不吐不快。? ? ? 首先,先聲明一下本人的立場(chǎng)。我個(gè)人希望自己是站在一個(gè)比較中立的角度上看的。但實(shí)際應(yīng)用上,我用圖形界面的時(shí)間遠(yuǎn)遠(yuǎn)超過(guò)命令行界面,所以看問(wèn)題難免會(huì)有一些偏頗,請(qǐng)讀者見諒。
? ? ? ?其次,本文的目的,不是對(duì)GUI和CLI進(jìn)行比較從而得出何者更佳的結(jié)論,而是希望探討一下為何關(guān)于兩者的討論會(huì)演變成一種對(duì)立的狀況,以及試圖觸及一下兩種界面方式所代表的截然不同的哲學(xué)觀。本文熱烈歡迎全文轉(zhuǎn)載,懇請(qǐng)注明出處。
定義
? ? ? 所謂GUI,我的定義是以圖形作為工作元素并以鼠標(biāo)、鍵盤協(xié)同作為主要輸入工具的工作方式。GUI通常使用大量的圖標(biāo)來(lái)標(biāo)識(shí)命令,并且通過(guò)組織按鈕、工具欄、對(duì)話框等元素的方式來(lái)試圖提高界面的直觀性和易用性。通常來(lái)說(shuō),GUI由于使用了大量的圖形元素,看起來(lái)會(huì)比較美觀。? ? ?而CLI則自然是指主要以文本方式作為工作元素,并主要以鍵盤作為輸入工具的工作方式。CLI采用直接輸入命令和參數(shù)的方式直接向計(jì)算機(jī)發(fā)送各種指令,通過(guò)組織參數(shù)和命令的輸入方法來(lái)試圖提高工作效率。CLI中同樣可以采用圖形組件以使得界面更為美觀,但這些圖形組件并不像GUI中的那樣具備實(shí)際的命令功能(否則就不該稱為CLI了)。
談一些奇怪的論點(diǎn)
? ? ? ?一直很奇怪,為何很多人把GUI和“易用性”劃上等號(hào),而把CLI和“高效”劃上等號(hào)。盡管從兩者的出發(fā)點(diǎn)來(lái)說(shuō)是沒(méi)有錯(cuò)的,但如果說(shuō)所有應(yīng)用這些界面的軟件都達(dá)到了其期望目標(biāo),那無(wú)異于一個(gè)泡沫般的夢(mèng)想。? ? ? 讓我們來(lái)看看這個(gè)軟件。這是一個(gè)著名的GUI軟件的默認(rèn)界面。說(shuō)起GUI易用性,大概很多人都能猜到我會(huì)選擇這個(gè)軟件作為反面教材。
圖1:不那么易用的GUI
? ? ? ?很顯然,這種將按鈕隱藏起來(lái)的設(shè)計(jì)是為了使得界面更加美觀和簡(jiǎn)潔。但這種設(shè)計(jì)實(shí)際上大大降低了軟件的易用性和效率。我相信沒(méi)有什么人愿意通過(guò)先找到那個(gè)用來(lái)顯示按鈕的按鈕,點(diǎn)一下,再找到剪切、復(fù)制或粘貼按鈕,以此來(lái)實(shí)現(xiàn)剪貼功能。事實(shí)上,大多數(shù)人會(huì)使用快捷鍵的方式。?
? ? ? ?像Office這類功能非常復(fù)雜的軟件,設(shè)計(jì)一個(gè)良好的GUI界面會(huì)非常費(fèi)神,其設(shè)計(jì)難度不亞于一個(gè)集成開發(fā)環(huán)境(IDE,Intergrated Developing Environment)。但復(fù)雜性不應(yīng)該是界面設(shè)計(jì)糟糕的借口。如上例,事實(shí)上用戶根本無(wú)法選擇哪個(gè)按鈕應(yīng)該隱藏,哪個(gè)不該。把剪切、復(fù)制、粘貼、格式刷這樣常用的按鈕隱藏起來(lái)的唯一作用,就是敦促用戶通過(guò)快捷鍵而非按鈕去使用這些功能。不過(guò)既然如此,又何必把這些功能做成按鈕呢?直接拿掉不是更簡(jiǎn)潔么??
? ? ?同樣,并非所有的CLI軟件都是高效的。以下是一個(gè)著名的CLI軟件的一部分?
?ffmpeg.exe?-i?"D:\Video\Fearless\Fearless.avi"
?-target?film-dvd?-s?720x352
?-padtop?64?-padbottom?64?-maxrate?7350000
?-b?3700000?-sc_threshold?1000000000
?-trellis?-cgop?-g?12?-bf?2?-qblur?0.3?-qcomp?0.7
?-me?full?-dc?10?-mbd?2
?-aspect?16:9?-pass?2?-passlogfile?"D:\Video\ffmpegencode"
?-an?-f?mpeg2video?"D:\Fearless.m2v"
? ? ? ? 如果用戶是要使用完全相同的參數(shù)進(jìn)行大量的批量轉(zhuǎn)換,以上命令也還勉強(qiáng)算得上“高效”。因?yàn)槭聦?shí)上,如果是需要經(jīng)常使用的話,用戶通常并不會(huì)選擇每次都輸入這堆參數(shù),而會(huì)使用腳本的方式把以上的命令“包裝”起來(lái),以便于將來(lái)的調(diào)用。但實(shí)際情形則常常更為復(fù)雜,用戶實(shí)際上很少使用完全同樣的選項(xiàng)進(jìn)行轉(zhuǎn)換,而進(jìn)行“微調(diào)”則會(huì)成為一件很麻煩的事情,于是就會(huì)出現(xiàn)把腳本“包裝”起來(lái)以提供更靈活的微調(diào)功能的腳本,如此周而復(fù)始,層層包裹。
? ? ? ?對(duì)于這類軟件來(lái)說(shuō),由于所提供的功能選項(xiàng)非常豐富,設(shè)計(jì)參數(shù)列表和設(shè)計(jì)GUI同樣是一件很麻煩的事情。CLI實(shí)質(zhì)上是通過(guò)簡(jiǎn)化操作步驟和提供批量處理選項(xiàng),來(lái)提高進(jìn)行重復(fù)工作時(shí)的操作效率的。如果這個(gè)軟件使用的機(jī)會(huì)并不多,而且每次使用時(shí)的選項(xiàng)都不完全一致,那么不僅不易用,而且也很難“高效”起來(lái)。
兩者的特點(diǎn)
? ? ? 盡管如此,在大多數(shù)情況下,GUI確實(shí)比CLI更易于使用,而CLI確實(shí)要比GUI更高效,因?yàn)閮烧叩脑O(shè)計(jì)目標(biāo)就是如此。? ? ? GUI由于采用了大量的圖形元素,界面會(huì)更顯得具有藝術(shù)性,富有人性化。相較于枯燥的文本來(lái)說(shuō),精致且合理的圖形大大增強(qiáng)了界面的易用性。
圖2: 漂亮的GUI
? ? ? ?GUI所提供的像單選框、多選框這樣的簡(jiǎn)潔明了的圖形控件使得軟件操作起來(lái)更為直觀。
圖3: 偉大的設(shè)計(jì)——GUI控件
? ? ? 相較于GUI而言,CLI通常就不具備什么美觀程度了。為了提高性能,CLI通常采用純文本方式工作。
圖4: 一片漆黑的經(jīng)典CLI界面
? ? ? 當(dāng)然,也有例外的。
圖5: 現(xiàn)代Linux上的常見CLI界面
? ? ? 為了提高工作效率,CLI通常都能夠以很自然的方式支持批量操作。例如刪除當(dāng)前目錄下的所有obj文件:
rm?*.obj
? ? ? 這種精確的指令可以保證得到嚴(yán)格執(zhí)行,不會(huì)像采用GUI方式一樣,說(shuō)不定一個(gè)不小心會(huì)漏掉了一兩個(gè)文件。
? ? ? 由于使用了文本方式直接輸入命令,描述起來(lái)也比GUI方式輕松得多。例如前面所示命令行的操作,如果需要以GUI方式描述出來(lái)的話,少不了一大堆截圖,否則很難讓廣大的菜鳥從浩如煙海的選項(xiàng)中找到自己真正所需要的東西。
? ? ? 最后要提一下快捷鍵。快捷鍵取材于CLI,實(shí)質(zhì)上是一種直接向系統(tǒng)發(fā)送指令的操作方式,但由于依賴于GUI,我把它歸為GUI的工作元素,并視為GUI為提高工作效率而向CLI所作的折衷,下文會(huì)詳細(xì)說(shuō)明這一點(diǎn)。
CLI的哲學(xué)
? ? ? CLI可以說(shuō)是人機(jī)界面的遠(yuǎn)祖,哪怕是遠(yuǎn)古時(shí)期的紙帶式計(jì)算機(jī),也同樣需要使用“命令行”方式工作(當(dāng)然載體不同)。可以說(shuō)命令行是最符合計(jì)算機(jī)工作方式的操作方式。
? ? ? 由于主要使用文本作為界面,CLI軟件對(duì)計(jì)算機(jī)的要求也低得多,在同等配置的機(jī)器上也要比GUI軟件的性能好得多。也正因此,CLI軟件得以在廣大的服務(wù)器系統(tǒng)上大行其道,在這些系統(tǒng)上,性能是最重要的。同時(shí),由于具備了比GUI軟件好得多的可伸縮性,CLI的適用范圍也遠(yuǎn)比GUI廣泛,在很多嵌入式平臺(tái)上,我們甚至只能看到CLI的身影。
? ? ? 但畢竟人不是計(jì)算機(jī),符合計(jì)算機(jī)的工作方式的同時(shí)也就意味著不那么人性化。為了用好一個(gè)CLI軟件,用戶不得不反反復(fù)復(fù)地查閱參數(shù)手冊(cè),有時(shí)還需要做各種參數(shù)組合的測(cè)試。而且如前所述,對(duì)于一些參數(shù)復(fù)雜的CLI軟件,用起來(lái)是頗為令人頭痛的,甚至有時(shí)根本就無(wú)法發(fā)揮CLI本身應(yīng)有的“高效”。
? ? ? 另外,對(duì)于CLI軟件來(lái)說(shuō),執(zhí)行結(jié)果往往并不是那么清晰的。用戶常常不得不面對(duì)滿屏滾動(dòng)的反饋信息體驗(yàn)黑客帝國(guó)一般的快感,或者是仿效真正的黑客一般從浩瀚的log海洋中尋覓那條絲毫不起眼的提示信息。
? ? ?有人把CLI軟件的工作方式稱為“WYTIWYG”(What You Think Is What You Get,所想即所得)。這種方式的特點(diǎn)在于,雖然沒(méi)有直觀地反應(yīng)出執(zhí)行結(jié)果,但卻能保證執(zhí)行結(jié)果可以和你的意圖一致。從某種程度上來(lái)說(shuō),這種說(shuō)法是正確的,因?yàn)橛脩舻囊鈭D總是以命令+參數(shù)的方式精確地傳遞給系統(tǒng),最后雖然不能直觀地看到執(zhí)行結(jié)果,卻總能發(fā)現(xiàn)系統(tǒng)已經(jīng)出色并嚴(yán)格地完成了工作。但從某種意義上來(lái)說(shuō),這種說(shuō)法是不準(zhǔn)確的,因?yàn)楫?dāng)面對(duì)著長(zhǎng)長(zhǎng)的參數(shù)手冊(cè)時(shí),用戶往往已經(jīng)搞不清自己的意圖到底是什么了。
GUI的哲學(xué)
? ? ?GUI是為了使操作直觀而生,最初被蘋果公司應(yīng)用在其操作系統(tǒng)上。后來(lái)蘋果公司更是大膽率先采用鼠標(biāo)作為輸入設(shè)備,從而進(jìn)一步使得電腦操作更為直觀和易用。不過(guò)在那個(gè)年代受限于硬件的機(jī)能,更由于蘋果一貫的高價(jià)策略,GUI長(zhǎng)期被視為一種不必要的“奢侈品”,直到微軟的“平民系統(tǒng)”Windows出現(xiàn),在大量抄襲了蘋果系統(tǒng)的圖形元素后,Windows成功地在低端市場(chǎng)蔓延開來(lái),GUI才終于得以大行其道。從這點(diǎn)上來(lái)說(shuō),微軟公司還是起到了很積極的作用,對(duì)計(jì)算機(jī)的平民化和易用化作出了不小的貢獻(xiàn)。? ? ?GUI的設(shè)計(jì)目標(biāo)就是為了擺脫CLI的弊病,把軟件的輸入和輸出都以更為人性化的形式來(lái)展現(xiàn),從而使得軟件更為易用和直觀。從這種意義上來(lái)說(shuō),GUI的出現(xiàn),可以看作是一種“進(jìn)步”。通過(guò)提供一組圖形“控件”,用戶得以以更為自然的方式與計(jì)算機(jī)進(jìn)行互動(dòng)。通過(guò)簡(jiǎn)潔明了的圖標(biāo),用戶可以對(duì)軟件的功能一目了然。通過(guò)使用新的輸入設(shè)備——鼠標(biāo),用戶可以以更符合人類習(xí)慣的方式“Point & Click”,舒服地向計(jì)算機(jī)傳遞各種指令。不難想象,GUI的出現(xiàn)對(duì)于計(jì)算機(jī)的發(fā)展來(lái)說(shuō),不啻于一場(chǎng)偉大的革命。
? ? ?GUI軟件可以通過(guò)使用大量的圖形元素和圖形特效,從根本上改變軟件的表現(xiàn)形式,“美觀”和“人性化”漸漸成為軟件界面設(shè)計(jì)的討論主題。隨著計(jì)算機(jī)處理能力的發(fā)展,我們甚至能夠以3D的形式來(lái)呈現(xiàn)和操作軟件。大量GUI軟件的出現(xiàn)大大降低了學(xué)習(xí)和使用計(jì)算機(jī)的門檻,賞心悅目的操作界面吸引了各行各業(yè)的人投入其中。如果說(shuō)CLI適應(yīng)了各種各樣的計(jì)算機(jī),GUI則適應(yīng)了各種各樣的人。可以說(shuō),要是沒(méi)有GUI,也就沒(méi)有今天如此繁盛的計(jì)算機(jī)產(chǎn)業(yè)。GUI的出現(xiàn)順應(yīng)了人們的需求,也是歷史的必然。
? ? ? 然而無(wú)論多么精美的界面,電腦程序就是電腦程序,其本質(zhì)上卻還是需要通過(guò)“命令”傳遞給計(jì)算機(jī)才能發(fā)揮作用的。由于中間需要進(jìn)行“人的習(xí)慣”到“計(jì)算機(jī)的習(xí)慣”的轉(zhuǎn)換,GUI軟件不可能做到如CLI軟件一般的高效和精確。可以說(shuō),GUI避免了CLI的弊端,但CLI的優(yōu)點(diǎn)卻恰恰成為了GUI的缺點(diǎn)。
? ? ?由于大量圖形元素的使用,GUI軟件帶動(dòng)了計(jì)算機(jī)硬件的發(fā)展,人們對(duì)良好界面的追求推動(dòng)了計(jì)算機(jī)處理能力的飛速發(fā)展。但這同時(shí)也說(shuō)明GUI軟件對(duì)計(jì)算機(jī)硬件的依賴性很強(qiáng),在需要將GUI軟件移植到其他平臺(tái)時(shí),這種依賴性的弊端就會(huì)凸現(xiàn)出來(lái)。而且即使是在同一平臺(tái)上,GUI軟件所耗費(fèi)的資源要比相同功能的CLI軟件高得多,但所能達(dá)到的性能則要低得多。盡管GUI提供了良好的易用性,極大地填補(bǔ)了人機(jī)對(duì)話的鴻溝,但在另一方面看來(lái),實(shí)際上增加了軟件開發(fā)的成本,縮小了軟件的適用范圍,同時(shí)降低了軟件的工作性能。
? ? ?由于能夠以非常靈活的方式進(jìn)行設(shè)計(jì),GUI軟件的表現(xiàn)形式也是千差萬(wàn)別。這本來(lái)是件好事情,但由于存在太多的GUI設(shè)計(jì)方式,開發(fā)人員在設(shè)計(jì)復(fù)雜的GUI軟件時(shí)往往會(huì)陷入一種無(wú)所適從的困境。為了設(shè)計(jì)出真正易用好用的GUI軟件,開發(fā)商往往不得不求助于藝術(shù)家和心理學(xué)家,甚至不惜采用“仿真”的方式來(lái)設(shè)計(jì)軟件界面,這大大增加了軟件開發(fā)的成本。盡管因此帶動(dòng)了計(jì)算機(jī)圖形學(xué)和人機(jī)界面設(shè)計(jì)學(xué)的發(fā)展,但更多的“無(wú)良”開發(fā)商基于成本的考慮,選擇了濫竽充數(shù)得過(guò)且過(guò),無(wú)視用戶的操作習(xí)慣和軟件的易用性,甚至創(chuàng)造出一些難以使用的“GUI”,企圖用更符合自身利益的界面設(shè)計(jì)來(lái)“改善”用戶本身自然的“習(xí)慣”和“體驗(yàn)”,如上面所提到的那個(gè)著名的GUI軟件。以操作系統(tǒng)開發(fā)商為例,可以說(shuō),如今最能堅(jiān)守易用性陣地的當(dāng)屬蘋果公司。盡管其產(chǎn)品同樣存在一些瑕疵,但直到今天,蘋果公司仍然堅(jiān)持發(fā)展人機(jī)界面設(shè)計(jì)學(xué),其創(chuàng)造的GUI軟件大都是藝術(shù)性和易用性結(jié)合的典范。而在微軟Windows系統(tǒng)橫行的國(guó)內(nèi),在其所推行的“廉價(jià)GUI”的理念影響下,能以謹(jǐn)慎的態(tài)度學(xué)習(xí)和應(yīng)用哪怕是“圖標(biāo)設(shè)計(jì)學(xué)”的人都已經(jīng)幾乎絕跡了。這在實(shí)際上導(dǎo)致了部分用戶對(duì)GUI的反感和抵觸。
| QCD Player | |
| Xine Player |
| Windows | |
| Linux (KDE) | |
| Mac OS X |
(注:復(fù)合式圖標(biāo)設(shè)計(jì)的一個(gè)基本原則是,圖標(biāo)的基本部分能夠清楚地表明項(xiàng)目的大類。圖中所列出的圖標(biāo)均為文檔項(xiàng)目,但Windows的圖標(biāo)基本上沒(méi)有遵循這個(gè)原則。KDE的圖標(biāo)基本遵循,但使用的不同色彩容易引起混淆。而Mac本身的圖標(biāo)系統(tǒng)就直接支持復(fù)合圖標(biāo),因此這些圖標(biāo)的疊加工作實(shí)際上是直接由系統(tǒng)完成的。)?
? ? ? 和CLI相對(duì)的,GUI的哲學(xué)是“WYSIWYG”(What You See Is What You Get,所見即所得),用戶以自己所習(xí)慣的方式向系統(tǒng)傳遞指令,并可以立刻在屏幕上以最自然的方式看到執(zhí)行結(jié)果,系統(tǒng)可以保證展示出來(lái)的東西和實(shí)際處理(如打印、渲染)后的結(jié)果基本保持一致。不過(guò)這事實(shí)上僅僅是GUI的一個(gè)設(shè)計(jì)目標(biāo),很多軟件是根本達(dá)不到令人滿意的效果的。而且對(duì)于用戶來(lái)說(shuō),如何能把心目中的藍(lán)圖展現(xiàn)在計(jì)算機(jī)上,即使是在GUI高度發(fā)達(dá)的今天,也還同樣是個(gè)問(wèn)題。
協(xié)同工作
? ? ?在如今的大多數(shù)軟件產(chǎn)品中,純GUI并沒(méi)有所期望的那么“易用”,而純CLI系統(tǒng)也沒(méi)有所想象的那么“高效”。作為一名程序員,我在從Windows平臺(tái)向Linux平臺(tái)轉(zhuǎn)換的過(guò)程中,發(fā)現(xiàn)了一個(gè)很有趣的現(xiàn)象。? ? ?Linux在繼承了Unix的血統(tǒng)的同時(shí),也繼承了其龐大的CLI軟件基礎(chǔ)(這種說(shuō)法很不準(zhǔn)確,姑且這么說(shuō)吧),這跟早期Linux主要應(yīng)用在服務(wù)器市場(chǎng)上有關(guān)。隨著Linux系統(tǒng)被越來(lái)越多地應(yīng)用到桌面市場(chǎng)上,對(duì)Linux下GUI軟件的呼聲也越來(lái)越高,也由此而引發(fā)了一系列關(guān)于Linux系統(tǒng)的爭(zhēng)議,例如“Linux不是Windows”、“Linux根本不適合用作桌面系統(tǒng)”、“現(xiàn)在的Linux已經(jīng)不再是Linux了”、“Linux就應(yīng)該做自己的服務(wù)器,不該到桌面市場(chǎng)瞎摻和”。很多人都忘記了Linux僅僅是一個(gè)系統(tǒng)核心而已,這不僅能說(shuō)明為何Linux核心會(huì)如此優(yōu)秀,也能說(shuō)明為何Linux會(huì)具有驚人的伸縮性。Linux核心既能夠和Unix移植過(guò)來(lái)的大量CLI軟件一起組成一個(gè)穩(wěn)固的服務(wù)器系統(tǒng),自然也能夠搭載各種GUI軟件從而組成一個(gè)漂亮的桌面系統(tǒng),這兩者并不矛盾。
? ? ? ?有些跑題了,但從上面的描述可以看出,Linux進(jìn)入桌面領(lǐng)域的時(shí)間不長(zhǎng),其基礎(chǔ)則主要是建立在過(guò)去的大量CLI軟件上的。為了在增強(qiáng)Linux的易用性的同時(shí)保留原先的CLI優(yōu)勢(shì),Linux下的許多GUI軟件采用了GUI前端+CLI后端的方式,也就是編寫一個(gè)用于與原CLI軟件進(jìn)行互動(dòng)的GUI軟件,兩者協(xié)同工作。這種工作方式和我們平常所說(shuō)的“前臺(tái)+后臺(tái)”方式并不相同,其CLI部分是一個(gè)獨(dú)立的軟件,而GUI部分則僅僅是該軟件的一個(gè)“Shell”(外殼)而已。GUI部分無(wú)法獨(dú)立工作,而且開發(fā)目的僅僅是為了使該軟件更易用,而并沒(méi)有增加任何功能。
? ? ? 這種引人注目的方式具有很多優(yōu)點(diǎn),并且在最近得到了越來(lái)越廣泛的利用。這種方式結(jié)合了GUI和CLI的優(yōu)點(diǎn),在使得軟件的易用性得到大大增強(qiáng)的同時(shí),其跨平臺(tái)能力以及性能和效率并沒(méi)有受到顯著削弱。由于同一個(gè)后端程序可以搭配不同的各種前端,從而能夠以較低的開發(fā)成本實(shí)現(xiàn)較好的跨平臺(tái)效果。由于前后端的分開,核心開發(fā)人員可以專注于系統(tǒng)性能,而無(wú)需受軟件表現(xiàn)形式和輸入方式的影響;而界面開發(fā)人員也可以無(wú)需關(guān)注核心的實(shí)現(xiàn),只需著力于改善界面的易用性和美觀程度即可。這類系統(tǒng)的耦合度通常較低,用戶甚至可以選擇完全使用CLI來(lái)工作而無(wú)需理會(huì)GUI,這也大大降低了系統(tǒng)的維護(hù)成本。
圖8: 漂亮的前端和強(qiáng)大的后端:Texshop+Texlive
? ? ? ?這是GUI和CLI協(xié)同工作的一個(gè)好例子,但它也同樣存在缺陷。最顯而易見的問(wèn)題在于,對(duì)于很多對(duì)跨平臺(tái)沒(méi)有特別要求的純GUI軟件,為了提高效率而分離并開發(fā)一個(gè)獨(dú)立后端顯得完全沒(méi)有必要。于是,一些開發(fā)商把CLI的一些理念“借”到了GUI軟件中,最常見且有效的莫過(guò)于快捷鍵了。快捷鍵本身實(shí)際上是一種直接使用鍵盤向系統(tǒng)發(fā)送命令的方式,只不過(guò)采用按鍵組合的方式來(lái)代替了傳統(tǒng)的字符串命令,用戶只需記憶各種按鍵組合即可輕松調(diào)用。這種方式既符合GUI的哲學(xué),又引入了CLI的高效,實(shí)在是一大創(chuàng)舉,自誕生伊始就被廣泛采用。如今,一個(gè)成熟完善的GUI軟件已經(jīng)根本離不開設(shè)計(jì)合理的快捷鍵了。
圖9:無(wú)孔不入的快捷鍵
? ? ?盡管快捷鍵在一定程度上提高了GUI的效率,但對(duì)于復(fù)雜的應(yīng)用來(lái)說(shuō)還是很不足夠,一種“類CLI”方式呼之欲出。微軟Office中Word的域命令方式雖然為Word的易用性蒙上了陰影,卻也為Word帶來(lái)了更靈活的工作方式和更強(qiáng)大的功能,我把這種方式稱之為“嵌入GUI中的CLI”。Autodesk公司的AutoCAD則走得更遠(yuǎn),索性大膽地應(yīng)用了GUI和CLI聯(lián)合構(gòu)建的“復(fù)合界面”,用戶需要聯(lián)合使用菜單、按鈕、命令工作,以學(xué)習(xí)難度的增大為代價(jià),帶來(lái)的是軟件功能的強(qiáng)大和Autodesk公司的富有。
圖10:無(wú)所不能的復(fù)合界面
總結(jié)
? ? ? 如今我們可以看到廣大的GUI擁躉在Windows下使用“Win+R”來(lái)輸入命令以快速調(diào)用程序,也可以看到堅(jiān)定的CLI信徒在Linux下使用FB(Frame Buffer)來(lái)為自己的終端界面增光添彩。GUI和CLI不是敵對(duì)的,靈活運(yùn)用兩者的特點(diǎn)才能開發(fā)出更符合用戶需求的人機(jī)界面。所以,我真的很不明白,為何有這么多人陷入在“GUI還是CLI”這樣的爭(zhēng)論中無(wú)法自拔,甚至還出現(xiàn)了很多宣稱“自己喜歡哪個(gè)就選哪個(gè)好了,吵什么吵”的和事佬。? ? ? 其實(shí),對(duì)于用戶來(lái)說(shuō),直觀、易用且高效的操作方式才是受歡迎的,開發(fā)者又何必拘泥于一種固定的操作方式呢?而且,正如很多人所指出的一樣,高效、直觀,其實(shí)有時(shí)僅僅取決于用戶的習(xí)慣而已。如其爭(zhēng)論“GUI好還是CLI好”這樣的話題,倒還不如多花點(diǎn)時(shí)間來(lái)研究個(gè)更好用的操作界面吧。
總結(jié)
以上是生活随笔為你收集整理的CLI or GUI --- 要高效还是要易用? (该文作者的功底真的很深厚啊)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: IEEE深度对话Facebook人工智能
- 下一篇: 瀑布式开发、迭代式开发、螺旋开发、敏捷开