作為一名多年的ios開發人員,多次觸發我思酌「gui程式設計與cli程式設計」各自的優劣,尤其是在當我為介面互動花費大佔比時間時,時常懷疑自己的工作性質,我終究還是為網際網路工作的碼農,而不是讓網際網路為我所用的明智人士。(容我把偏gui程式設計看成是取悅他人,把偏cli程式設計看成是取悅自己。)
-----前言
支援cli的意見:(摘抄)
1. 寫gui程式,不光要編寫功能邏輯**,還要用某個ui引擎編寫乙個和諧美化的介面展示給使用者,如果還有很多的使用者互動,功能邏輯和互動邏輯**耦合在一起,那麼**量和**複雜程度也會成倍增加。因為任何乙個ui引擎的**量都遠遠超出你要寫的軟體的功能邏輯**的幾十倍了,外加熟悉掌握ui引擎的用法,然後再去寫介面的互動邏輯**,這工作量也是翻幾倍的。
舉個簡單的例子,讓你做乙個電子**,比如類似於excel的完成特定格式的資料的錄入和儲存,寫個cli的程式,才能有多少**量,然而如果你要做成gui形式的程式,**量起碼是cli的幾千倍了。
2. gui的好處是「所見即所得」,缺點是「所見即全部所得」。
3. gui環境通常受限於它們的設計者想要提供的能力。如果你需要超越設計者提供的模型,你大概不會那麼走運,而且很多時候你確實需要超越這些模型。
4. 首先是程式設計方便,很複雜的功能對於gui來說,在處理互動上可能要花費乙個月時間,編寫相同功能cli的話可能只會用幾天。
其次,也是最重要的是可組合:可以簡單地將小程式組合起來實現各自所需要的複雜大功能。而且也方面gui等程式在別處呼叫。
再次,就是跨平台。cli不需要考慮太多平台相關的東西。而且還可以在它之上包裝gui。
還有一點就是,cli方便遠端執行,一行ssh命令就能做到。
5. cli可以說是人機介面的遠祖,哪怕是遠古時期的紙帶式計算機,也同樣需要使用「命令列」方式工作。可以說命令列是最符合計算機工作方式的操作方式。
由於主要使用文字作為介面,cli軟體對計算機的要求也低得多,在同等配置的機器上也要比gui軟體的效能好得多。也正因此,cli軟體得以在廣大的伺服器系統上大行其道,在這些系統上,效能是最重要的。同時,由於具備了比gui軟體好得多的可伸縮性,cli的使用範圍也遠比gui廣泛,在很多嵌入式平台上,我們甚至只能看到cli的身影。
6. cli的身上,帶有程式設計的「影子」。
7. 儘管gui提供了良好的易用性,極大地填補了人機對話的鴻溝,但在另一方面看來,實際上增加了軟體開發的成本,縮小了軟體的適用範圍,同時降低了軟體的工作效能。
支援gui的意見:(摘抄)
1. 說句實話,如果使用者都接受cli程式的話,都會用cli程式的話,還會有哪個windows程式設計師吃飽了撐著,花百倍的工作量去做ui呢?
如果把word或者excel都做成命令列形式,那世界上得多增加多少word或excel的培訓機構了?
如果把各種遊戲比如《王者榮耀》做成命令列形式,那還能賺錢嗎?
2. 說cli用起來不舒服,至少對記憶力差又粗心大意的傢伙是這樣的。
3. gui能呈現各種多**資料,而cli基本只能呈現文字。
4. gui由於採用了大量的圖形元素,介面會更顯得具有藝術性,富有人性化。相對於枯燥的文字來說,精緻且合理的圖形大大增加了介面的易用性。簡潔明瞭的圖形控制項使得軟體操作起來更為直觀。
相較於gui而言,cli通常就不具備什麼美觀程度了。為了提高效能,cli通常採用純文字方式工作。
5. 快捷鍵取材於cli,實質上是一種直接向系統傳送指令的操作方式,但由於依賴於gui,我把它歸為gui的工作元素,並視為提高工作效率而向cli所作的折中。
6. 但畢竟人不是計算機,符合計算機的工作方式的同時也就意味著不那麼人性化。
7. 另外,對於cli軟體來說,執行結果往往並不是那麼清晰的。使用者常常不得不面對滿屏滾動的反饋資訊,體驗黑客帝國一般的快感,或者是仿效真正的黑客一般從浩瀚的log海洋中尋覓那條絲毫不起眼的提示資訊。
8. 有人把cli軟體的工作方式稱為「所想即所得」。這種方式的特點在於,雖然沒有直觀地反應出執行結果,但卻能保證執行結果可以和你的意圖一樣。從某種程度上來說,這種說法是正確的,因為使用者的意圖總是以「命令 + 引數」的方式精確地傳遞給系統,最後雖然不能直觀地看到執行結果,卻總能發現系統已經出色並嚴格地完成了工作。但從某種意義上來說,這種說法是不準確的,因為當面對著長長的引數手冊時,使用者往往已經搞不清自己的意圖到底是什麼了。
9. gui軟體可以通過使用大量的圖形元素和圖形特效,從根本上改變軟體的表現形式,「美觀」和「人性化」漸漸成為軟體介面設計的討論主題。隨著計算機處理能力的發展,我們甚至能夠以3d的形式來呈現和操作軟體。大量gui軟體的出現大大降低了學習和使用計算機的門檻,賞心悅目的操作介面吸引了各行各業的人投入其中。如果說cli適應了各種各樣的計算機,gui則適應了各種各樣的人。
10. 以作業系統開發商為例,可以說,如今做能堅守一易用性陣地的當屬蘋果公司。儘管其產品同樣存在一些瑕疵,但直到今天,蘋果公司仍然堅持發展人機介面設計學,其創造的gui軟體大都是藝術性和易用性結合的典範。
中立態度:(摘抄)
1. 因為兩者面向的使用者不同,初中也不同。今天看了《程式設計師修煉之道》這本書,可謂是有了更深入的了解。gui側重於易用,cli則側重於效率。
2. 現在幾乎所有人都沒辦法離開gui,對於程式設計師等專業使用者來說不可能離開cli。
GUI程式設計
兩種形式 1.例項化 jframe 2.繼承jframe class myframe extends jframe myhandler myhandler new myhandler 實現actionlistener類處理事件 jb.addactionlistener myhandler this....
Shell的GUI程式設計
小部件 描述calendar 提供乙個可以在其中選擇日期的日曆 checklist 顯示多個專案,這些專案均可以被開啟或關閉 form 允許建立乙個可以填寫標籤和文字欄位的表單 fselect 提供乙個檔案選擇視窗以瀏覽檔案 gauge 顯示乙個說明完成百分比的儀表 infobox 顯示資訊而不等待...
Python之GUI程式設計
然後解壓到合適的路徑下,這裡解壓到了桌面。在cmd終端輸入以下 cd desktop cd 解壓的檔名 cd 一直到最後乙個子資料夾 cd python setup.py install 完成推薦使用最後一種方法。import easygui easygui.msgbox 嗨,你好呀 from ea...