02.05 作為 CEO 使用 Emacs 的兩年經驗之談

作為 CEO 使用 Emacs 的兩年經驗之談

兩年前,我寫了一篇博客,並取得了一些反響。這讓我有點受寵若驚。那篇博客寫的是我準備將 Emacs 作為我的主辦公軟件,當時我還是 CEO,現在已經是 CTO 了。

-- Josh Stella

兩年前,我寫了一篇 博客 ,並取得了一些反響。這讓我有點受寵若驚。那篇博客寫的是我準備將 Emacs 作為我的主辦公軟件,當時我還是 CEO,現在已經是 CTO 了。現在回想起來,我發現我之前不是做程序員就是做軟件架構師,而且那時我也喜歡用 Emacs 寫代碼。重新考慮使用 Emacs 是一次令我振奮的嘗試,但我不太清楚這次行動會造成什麼反響。在網上,那篇博客的評論也是褒貶不一,但是還是有數萬的閱讀量,所以總的來說,我寫的是一個蠻有意思的題材。在 Reddit 和 HackerNews 上有些令人哭笑不得的回覆,說我的手會變成雞爪,或者說我會因白色的背景而近視。在這裡我可以很高興地回答,到目前為止並沒有出現什麼特別糟糕的後果,相反,我的手腕還因此變得更靈活了。還有一些人擔心,說使用 Emacs 會耗費一個 CEO 的精力。把 Fugue 從一個在我家後院的靈感變成強大的產品,並有一大批忠實的顧客,我發現在做這種真正複雜之事的時候,Emacs 可以給你帶來安慰。還有,我現在仍然在用白色的背景。

近段時間那篇博客又被翻出來了,併發到了 HackerNews 上。我收到了大量的跟帖者問我現在使用狀況如何,所以我寫了這篇博客來回應他們。在本文中,我還將重點討論為什麼 Emacs 和函數式編程有很高的關聯性,以及我們是怎樣使用 Emacs 來開發我們的產品 —— Fugue,一個使用函數式編程的自動化的雲計算平臺的。由於我收到了很多反饋,其眾多細節和評論很有用,因此這篇博客比較長,而我確實也需要費點精力來解釋我如此作為時的想法,但這篇文章的主要內容還是反映了我擔任 CEO 時處理的事務。而我想在之後更頻繁地用 Emacs 寫代碼,所以需要提前做一些準備。一如既往,本文因人而異,後果自負。

意外之喜

我大部分時間都在不斷的處理公司內外溝通。交流是解決問題的唯一方法,但也是反思及思考困難或複雜問題的敵人。對我來說,作為創業公司的 CEO,最需要的是能專注工作而不被打擾的時間。一旦你決定投入時間來學習一些有用的命令,Emacs 就能幫助創造這種不被打擾的可貴環境。其他的應用會彈出提示,但是一個配置好了的 Emacs 可以完全不影響你 —— 無論是視覺上還是精神上。除非你想,否則的話它不會改變,況且沒有比空白屏幕和漂亮的字體更乾淨的界面了。不斷被打擾是我的日常狀況,因此這種簡潔讓我能夠專注於我在想的事情,而不是電腦本身。好的程序能夠默默地操縱電腦,並且不會奪取你的注意力。

一些人指出,我原來的博客有太多對現代圖形界面的批判和對 Emacs 的讚許。我既不贊同,也不否認。現代的界面,特別是那些以應用程序為中心的方法(相對於以內容為中心的方法),既不是以用戶為中心的,也不是面向任務的。Emacs 避免了這種錯誤,這也是我如此喜歡它的部分原因,而它也帶來了其他優點。Emacs 是帶領你體會計算機魅力的傳送門,一個值得跳下去的兔子洞(LCTT 譯註:愛麗絲夢遊仙境裡的兔子洞,跳進去會有新世界)。它的核心是發現和創造屬於自己的道路,對我來說這本身就是創造了。現代計算的悲哀之處在於,它很大程度上是由帶有閃亮界面的黑盒組成的,這些黑盒提供的是瞬間的喜悅,而不是真正的滿足感。這讓我們變成了消費者,而不是技術的創造者。無論你是誰或者你的背景是什麼;你都可以理解你的電腦,你可以用它創造事物。它很有趣,能令人滿意,而且不是你想的那麼難學!

我們常常低估了環境對我們心理的影響。Emacs 給人一種平靜和自由的感覺,而不是緊迫感、煩惱或興奮 —— 後者是思考和沉思的敵人。我喜歡那些持久的、不礙事的東西,當我花時間去關注它們的時候,它們會給我帶來真知灼見。Emacs 滿足我的所有這些標準。我每天都使用 Emacs 來工作,我也很高興我很少需要注意到它。Emacs 確實有一個學習曲線,但不會比學自行車的學習曲線來的更陡,而且一旦你掌握了它,你會得到相應的回報,而且不必再去想它了。它賦予你一種其他工具所沒有的自由感。這是一個優雅的工具,來自一個更加文明的計算時代。我很高興我們步入了另一個文明的計算時代,我相信 Emacs 也將越來越受歡迎。

棄用 Org 模式處理日程和待辦事項

在原來的文章中,我花了一些時間介紹如何使用 Org 模式來規劃日程。不過現在我放棄了使用 Org 模式來處理待辦事項一類的事物,因為我每天都有很多會議要開,很多電話要打,我也不能讓其他人來適應我選的工具,而且也沒有時間將事務轉換或是自動移動到 Org 上。我們主要是 Mac 一族,使用谷歌日曆等工具,而且原生的 Mac OS/iOS 工具可以很好的進行團隊協作。我還有支老鋼筆用來在會議中做筆記,因為我發現在會議中使用筆記本電腦或者說鍵盤記錄很不禮貌,而且這也限制了我的聆聽和思考。因此,我基本上放棄了用 Org 模式幫我規劃日程或安排生活。當然,Org 模式對其他的方面也很有用,它是我編寫文檔的首選,包括本文。換句話說,我使用它的方式與其作者的想法背道而馳,但它的確做得很好。我也希望有一天也有人如此評價並使用我們的 Fugue。

Emacs 已經在 Fugue 公司中擴散

我在上篇博客就有說,你可能會喜歡 Emacs,也可能不會。因此,當 Fugue 的文檔組將 Emacs 作為標準工具時,我是有點擔心的,因為我覺得他們可能是受了我的影響才做出這種選擇。不過在兩年後,我確信他們做出了正確的選擇。文檔組的組長是一個很聰明的程序員,但是另外兩個編寫文檔的人卻沒有怎麼接觸過技術。我想,如果這是一個經理強迫員工使用錯誤工具的案例,我就會收到投訴要去解決它,因為 Fugue 有反威權文化,大家不怕挑戰任何事和任何人。之前的組長在去年辭職了,但 文檔組 現在有了一個靈活的集成的 CI/CD 工具鏈,並且文檔組的人已經成為了 Emacs 的忠實用戶。Emacs 有一條學習曲線,但即使在最陡的時候,也不至於多麼困難,並且翻過頂峰後,對生產力和總體幸福感都得到了提升。這也提醒我們,學文科的人在技術方面和程序員一樣聰明,一樣能幹,也許不那麼容易受到技術崇拜與習俗產生的影響。

我的手腕感激我的決定

上世紀 80 年代中期以來,我每天花 12 個小時左右在電腦前工作,這給我的手腕(以及後背)造成了很大的損傷(因此我強烈安利 Tag Capisco 的椅子)。Emacs 和人機工程學鍵盤的結合讓手腕的 RSI ( 重複性壓迫損傷(Repetitive Strain Injury))問題消失了,我已經一年多沒有想過這種問題了。在那之前,我的手腕每天都會疼,尤其是右手。如果你也有這種問題,你就知道這疼痛很讓人分心和憂慮。有幾個人問過關於選購鍵盤和鼠標的問題,如果你也對此有興趣,那麼在過去兩年裡,我主要使用的是 Truly Ergonomic 鍵盤,不過我現在用的是 這款鍵盤 。我已經換成現在的鍵盤有幾個星期,而且我愛死它了。大寫鍵的形狀很神奇,因為你不用看就能知道它在哪裡。而人體工學的拇指鍵也設計的十分合理,尤其是對於 Emacs 用戶而言,Control 和 Meta 是你的堅實伴侶,不要再需要用小指做高度重複的任務了!

我使用鼠標的次數比使用 Office 和 IDE 時要少得多,這對我的工作效率有很大幫助,但我還是需要一個鼠標。我一直在使用外觀相當過時,但功能和人體工程學非常優秀的 Clearly Superior 軌跡球,恰如其名。

撇開具體的工具不談,事實證明,一個很棒的鍵盤,再加上避免使用鼠標,在減少身體的磨損方面很有效。Emacs 是達成這方面的核心,因為我不需要在菜單上滑動鼠標來完成任務,而且導航鍵就在我的手指下面。我現在十分肯定,我的手離開標準打字位置會給我的肌腱造成很大的壓力。不過這也因人而異,我不是醫生不好下定論。

我並沒有做太多配置……

有人說我會在界面配置上耗費很多的時間。我想驗證下他們說的對不對,所以我特別留意了下。我不僅在很多程度上不用配置,關注這個問題還讓我意識到,我使用的其他工具是多麼的耗費我的精力和時間。Emacs 是我用過的維護成本最低的軟件。Mac OS 和 Windows 一直要求我更新它,但在我看來,這遠沒有 Adobe 套件和 Office 的更新給我帶來的困擾那麼大。我只是偶爾更新 Emacs,但對我來說它也沒什麼變化,所以從我的個人觀點而言,更新基本上是一個接近於零成本的操作,我高興什麼時候更新就什麼時候更新。

有一點讓你們失望了,因為許多人想知道我為跟上重新打造的 Emacs 社區的更新做了些什麼,但是在過去的兩年中,我只在配置中添加了少部分內容。我認為這也是一種成功,因為 Emacs 只是一個工具,而不是我的愛好。但即便如此,如果你想和我分享關於 Emacs 的新鮮事物,我很樂意聆聽。

期望實現雲端控制

在我們 Fugue 公司有很多 Emacs 的粉絲,所以我們有一段時間在用 Ludwing 模式 。Ludwig 模式是我們用於自動化雲基礎設施和服務的聲明式、功能性的 DSL。最近,Alex Schoof 利用在飛機上和晚上的時間來構建 fugue 模式,它在 Fugue CLI 上充當 Emacs 控制檯。要是你不熟悉 Fugue,這是我們開發的一個雲自動化和治理工具,它利用函數式編程為用戶提供與雲的 API 交互的良好體驗。但它做的不止這些。fugue 模式很酷的原因有很多,它有一個不斷報告雲基礎設施狀態的緩衝區,由於我經常修改這些基礎設施,這樣我就可以快速看到代碼的效果。Fugue 將雲工作負載當成進程處理,fugue 模式非常類似於為雲工作負載設計的 top 工具。它還允許我執行一些操作,比如創建新的設備或刪除過期的東西,而且也不需要太多輸入。Fugue 模式只是個雛形,但它非常方便,而我現在也經常使用它。


作為 CEO 使用 Emacs 的兩年經驗之談

fugue-mode-edited


模式及監控

我添加了一些模式和集成插件,但並不是真正用於工作或 CEO 職能。我喜歡在週末時寫寫 Haskell 和 Scheme 娛樂,所以我添加了 haskell 模式和 geiser。Emacs 很適合擁有 REPL 的語言,因為你可以在不同的窗口中運行不同的模式,包括 REPL 和 shell。geiser 和 Scheme 很配,要是你還沒有用過 Scheme,那麼閱讀《計算機程序的構造和解釋》(SICP)也不失為一種樂趣,在這個有很多貨物崇拜編程(LCTT 譯註:是一種計算機程序設計中的反模式,其特徵為不明就裡地、儀式性地使用代碼或程序架構)例子的時代,閱讀此書或許可以啟發你。安裝 MIT Scheme 和 geiser,你就會感覺有點像 lore 的符號環境。

這就引出了我在 2015 年的文章中沒有提到的另一個話題:屏幕管理。我喜歡使用單獨一個縱向模式的顯示器來寫作,我在家裡和我的主要辦公室都有這個配置。對於編程或混合使用,我喜歡我們提供給所有 Fugue 人的新型超寬顯示器。對於它來說,我更喜歡將屏幕分成三列,中間是主編輯緩衝區,左邊是水平分隔的 shell 和 fugue 模式緩衝區,右邊是文檔緩衝區或另外一、兩個編輯緩衝區。這個很簡單,首先按 Ctl-x 3 兩次,然後使用 Ctl-x = 使窗口的寬度相等。這將提供三個相等的列,你也可以使用 Ctl-x 2 對分割之後的窗口再次進行水平分割。以下是我的截圖。


作為 CEO 使用 Emacs 的兩年經驗之談

Emacs Screen Shot


這將是最後一篇 CEO/Emacs 文章

首先是因為我現在是 Fugue 的 CTO 而並非 CEO,其次是我有好多要寫的博客主題,而我現在剛好有時間。我還打算寫些更深入的東西,比如說函數式編程、基礎設施即代碼的類型安全,以及我們即將推出的一些 Fugue 的新功能、關於 Fugue 在雲上可以做什麼的博文等等。


via: https://www.fugue.co/blog/2018-08-09-two-years-with-emacs-as-a-cto.html

作者: Josh Stella 選題: lujun9972 譯者: oneforalone 校對: acyanbird , wxy

本文由 LCTT 原創編譯, Linux中國 榮譽推出


分享到:


相關文章: