真正好用的軟體都會有個 Shell

2021-09-14 06:48:40 字數 2051 閱讀 2321

截止到公元 2017 年 11 月 7 日晚上 10 點,選單、工具欄與快捷鍵依然是幾乎所有帶圖形介面的軟體的標配。我們已經習以為常,每天像雜貨鋪的老闆一樣清點著它們。

這段時間,我差不多一直沒停下更新乙個小型的 c 庫。除了功能部分經常增刪之外,一些函式的名字也推敲了一番。

我將所有的agn_***_alloc函式更名為agn_***agn是這個庫的名字。例如,要構造乙個 n 維的點物件,以前的函式名是agn_point_alloc,現在是agn_point。今天,我將所有的agn_***_foreach函式更名為agn_***_each,這些函式用於遍歷一些集合性的物件中的每乙個元素。

之所以要修改這些函式的名字,是因為生活中的一些經驗。例如,當我在家裡修理一件物事的時候,如果我需要鉗子,我會對妻說,「鉗子」,而不是「拿把鉗子給我」,也不是「你找一把鉗子給我」,更不是「我需要鉗子,你拿一把給我」之類繁瑣的描述。

人類的語言,從一開始就沒有語法。語法的存在的目的僅僅是為了消除使用語言交流過程中的誤解。在確定不會引起誤解的情況下,就可以扔掉語法,怎麼方便就怎麼來。最簡單的證據就是,我們能夠很熟練的運用自己的母語,並不意味著我們掌握了它的語法。agn_point_alloc函式,它的意思是「給我分配乙個點物件」,那麼我將它的名字改為agn_point,這與上文所述的,我對妻所說的「鉗子」有什麼不同?同理,將agn_list_foreach更名為agn_list_each,會引起誤解嗎?不會。

一開始,我之所以給「創造乙個點物件」這一功能取名為agn_point_alloc,是模仿 gsl 庫里的那些_alloc函式,例如gsl_vector_alloc。類似地,glib 庫也有一堆g_***_new之類的函式。像這樣的函式命名,也都是在歸類,以alloc為字尾的函式是向 c 語言的記憶體分配函式malloc歸類。以new為字尾的函式則是向 c++ 的new歸類。

分類這種行為,似乎像是我們的本能。不過,我們許多被視為「本能」的舉動是由各種形式的廣告塑造出來的。就像妻很擔心床鋪一天不清掃,就會滋生蟎蟲。事實上,蟎蟲在每個人的身體上都是存在的,就像每個人身上都有毛髮,就像我們的身體裡有各種各樣的細菌那樣尋常。

是先有的世界,後有的人類,然後才有了亞里斯多德和他的分類。對於乙個軟體而言,功能是先有的,而選單、工具欄以及快捷鍵的分類是後有的。那麼,我們為什麼要分類?歸根結底,為了快速檢索到自己所需要的東西。我們在使用任何乙個帶 gui 的軟體,都要扮演著乙個人肉版的樹狀結構層序剪枝檢索器。一些常用功能有快捷鍵,人肉版的 hash 表檢索器。

當我在家修理東西的時候,騰不開手,對妻說,鉗子!這也是一種檢索,命令式的。妻能領會我的意思,她去工具箱檢索了一番,找到了鉗子,並送到我手裡。軟體的 ui 設計,是不是也可以這樣呢?

像這樣的 ui,的確存在。我每天都要用的 emacs 就是這樣的 ui。我要寫 c **,就命令它m-x c-mode,我要寫 python **就命令它m-x python-mode,我要查詢並替換一些文字,就命令它m-x query-replace……這樣的 ui 才是最自然的 ui。母語非英語的使用者,記不准單詞,也沒有太大問題,因為 emacs 提供了單詞檢索與自動補全功能。

有很多軟體也有 emacs 這樣的 ui,例如 gnuplot,imagemagick。當然,還有我用過的最頻繁的軟體——fish shell。這樣的 ui,其實就是廣義的 shell。這些依靠使用者輸入命令而運作的軟體,長期以來被視為落後的怪物,而那些提供了一堆選單、工具欄、對話方塊以及亂七八糟的快捷鍵的軟體,卻被視為先進生產力的楷模。事實上,家喻戶曉的工業設計方面的專業軟體 autocad 除了提供選單、工具條、快捷鍵,也提供了一種 shell。

以後判斷乙個行業軟體是否好用,不妨先看看它有沒有提供乙個 shell。

推薦個比較好用的協同辦公軟體?

想實現與團隊的協作,可以將要完成的事項傳送給同事領導,也稱之為事項派發,不管是寫協作前,寫作後,都可以給同時派發事項哦 還可以拆解成子孫事項,新增檔案和重點,生成脈絡圖,再也不怕溝通不及時 當然,還可以看見參與該項目的所有成員的日程安排,想做更好的協同分工的,可以在上面分配。如果有什麼任務小組內討論...

論乙個真正的軟體測試工程師

至少是我,在剛接觸測試的時候,除了完成領導的任務 主要是看需求,寫用例,執行並回歸 外,沒有什麼事情可做,現在回想起來,其實能做事情還有很多,只是沒被安排 咳咳,我可不是說我第乙份工作的領導不好 好其實是沒有意識去提高而已。其實就現在而言,我目前的工作流程是這樣的 當然是以乙個版本迭代為週期 評審新...

Wince6下比較好用的乙個手寫軟體

找手寫軟體找了一年多了,最終還是覺得這個最好 蒙恬手寫2.0綠色版 要調出的時候啟動裡面的ppencegb.exe,不要的時候kill掉程序,挺簡單的。稍微測試了一下,用滑鼠畫輸入中文識別率很高,觸屏輸入就不說了 不過有個比較大的問題,就是只能存放於 sdmmc 目錄下,否則會崩潰。應該可以修改內部...