<i id="bcuty"><sub id="bcuty"></sub></i>

<b id="bcuty"></b>

您的位置:首頁 >智能 >

我的 IDE 太重了,所以遷到了 Emacs|世界微頭條

2023-02-28 10:25:47    來源:騰訊網

作者 | Renato Athaydes


(資料圖片僅供參考)

譯者 | Sambodhi

策劃 | 褚杏娟

IDE(Integrated Development Environment,集成開發環境)是一種偉大的工具,可以使開發者的生活更輕松。我簡直不敢想象,沒有它們的工作會是什么樣子。

但是,它們為我們提供的幫助并非無償,而我也正遭受著這種后果。我使用 2019 年左右生產的、性能不佳的 MacBook Air ,在它上面運行我最喜歡的 IDE、Jetbrains 的 IntelliJ IDEA 社區版,但整個經歷一直都不怎么愉快。

在這篇文章中,我想提出一個問題:IDE 是否真的需要這么重,以致于我們在數年前價值一千美元的筆記本電腦上幾乎無法使用 IDE?

我遇到的問題

使用 IntelliJ 2022.3 的截圖

IntelliJ 是一款非常出色的產品,對于專業開發來說,我根本不會考慮換成其他東西。因此,在這種情況下,擁有最好的筆記本電腦和最好的工具應該是優先考慮的。在我這臺擁有 64GB 內存和 10 個 CPU 內核的頂配 Mac M1 上,一切都感覺輕盈流暢(好吧,幾乎一切……但在上面運行帶有幾個 Docker 容器的 Kubernetes,Mac M1 居然有點跑不動了?。?,所以我在工作中沒有任何問題。

但當我在家里想做一個業余愛好項目時,為了不讓工作與私人事務混在一起,我試圖將它們嚴格分開,我寧愿選擇我家那臺性能較弱的筆記本電腦。

問題在于,僅僅在使用 IntelliJ 編寫代碼和運行測試一個小時左右之后,這臺筆記本電腦就變得非常燙手了。風扇的噪音越來越大,最后實在讓人討厭了。

這還不算,當你幾乎無法使用任何 IDE 功能的情況下對內容進行“索引”時,這個過程要花上整整一分鐘,甚至更長的時間……而且那是在花費了相當長的時間之后,僅僅掃描要索引的東西!

我還有一臺戴爾 XPS 13,運行的是 Linux,配置相當不錯,但情況也是一樣,而且風扇的噪音更大。

我可以毫無問題地看高清視頻、聽歌、上網沖浪和許多其他事情……但顯然,在不是頂配的任何機器上編寫代碼,要求都太高了。

問題的出現和我所用的語言堆棧沒有任何關系。例如,我在 Java、Groovy 和 Dart(這些是我最近寫得最多的編程語言)中遇到了或多或少相同的問題。我還注意到,在我使用 Kotlin 和 Java 的項目中,情況明顯更糟。因此,問題看起來跟某種特定的語言或者插件沒有關系。

盡管這樣說有點傷人,但作為 JetBrains 及其工具的忠實擁躉,IntelliJ 似乎已經變得過重,無法在 2020 年初的筆記本電腦上正常運行,而這臺筆記本電腦又不是很高端的產品。

我最近一直在向 Jetbrains 報告問題,在最后一次他們告訴我關閉一些插件,因為通常會有一個流氓插件導致問題……從某種意義上來說,這是對的,因為我已經禁用了我不太在意的插件(WASM、Scala、Makefile、Clojure-Kit、JMH、Gradianto),這個問題的確沒有那么明顯了……但它肯定還是存在的。

IntelliJ 替代方案

Jetbrains 正在開發 Fleet,這是 JetBrains 的一個新的、更輕的編輯器,雖然它看起來很有前途(它非常美觀,考慮周全,非常時尚),但在我的筆記本電腦上仍然感覺不夠輕……它畢竟使用了與 IntelliJ 相同的后端,這也許就是問題所在(不過這也是一個很大的優勢,因為 IntelliJ 的大部分出色的功能也存在于 Fleet 中)……

我可能最終會轉向它,但鑒于它仍然存在一些相當嚴重的問題(這很自然,目前還處于測試階段),所以估計它還需要一段時間才能準備好投入使用。

當我在十年前使用 Eclipse 的時候,它是一個不錯的 IDE,但不幸的是,它變得(我最近確實試了一下?。τ脩粝喈敳挥押?。我不想冒犯任何喜愛它的人,但現在我不會考慮重新使用這個工具了。更不用說,它對大多數非 JVM 語言,特別是較新語言的支持非常差,因為它已經失寵了相當長的一段時間(它曾一度是有商業頭腦的語言設計者的首選 IDE)。

很遺憾,對我來說,Vim 是一個我從未想過要使用的工具。我知道有幾個基于 VIM 的、新穎有趣的 IDE 項目,比如 neovim,考慮到其廣泛的應用,這使它成為一個有吸引力的選擇。但我偶然發現自己在舊編輯器之戰中堅定地站在 Emacs 一邊,正如我們將看到的那樣。我想,有一天,我可能會跳到另一邊去看看,但那一天并不會很快到來。

可能有人會問:為什么不是 VS Code?好吧,我實際上已經安裝了它,但我不能讓自己使用它。在我看來,它的快捷鍵并不符合人體工學(而且我也懶得去定制它,因為接下來的原因),它仍然很重,基于 Electron,而且和其他的替代方案比起來,在使用我關心的語言時,我覺得它很慢。我承認 VS Code 看起來不錯,也知道它是當今最流行的編輯器,但它就是不適合我。如果你覺得它足夠好,那也可以了……但我肯定需要別的東西。

Emacs 來拯救?!

這就是為什么我目前正嘗試重新使用 Emacs。

可能你不了解 Emacs,這是一款與 Vim 一樣具有傳奇色彩的文本編輯器,但是它所能做的事情要多得多。它存在的時間很可能比你活著的時間還長(當然比我還長),而且仍在繼續發展!

它是 GNU 項目的一部分,可以說是早期自由和開源軟件的最成功的例子之一。

與我嘗試過的其他軟件相比,Emacs 是非常輕量的(有趣的是,在它剛創建出來的時候,它被認為是一個重量級的軟件……事情發生了怎樣的變化)!最近一些開發給大多數編輯器帶來了先進的 IDE 功能(當然,我說的是 LSP),今天,Emacs 是一個功能非常強大的 IDE。

它確實需要任何從未嘗試過的人進行初始投資,因為你從一個現代編輯器中期待的大多數東西要么必須手動配置、要么內置,但以完全不同的方式工作。你還需要對 Lisp 有一點了解(Emacs 是基于它自己的 Lisp 方言 elisp 構建的),但如果你是那種甚至考慮像 Emacs 這樣的東西可以徹底破解的人,這實際上也是樂趣的一部分。

我注意到,有更多“開箱即用”的 Emacs 發行版,如 Spacemacs 和 Doom Emacs,對于那些想要一個現代編輯器而不必手動配置一切的人來說,會感覺更舒服。

幾年來,我已經成功地將 Emacs 配置為最基本的現代快捷鍵,這些快捷鍵在 90 年代后的大多數其他應用程序中都能使用(比如 Cmd+S 保存,Ctrl+Tab 切換緩沖區等等)。而且對我喜歡使用的所有語言(Java、Go、C、Rust、Dart、Groovy、Common Lisp 甚至 Zig)都有很好的支持,包括自動完成、內聯文檔、代碼導航(轉到定義、查找實現、返回 / 前進到上一個 / 下一個位置等)、項目范圍內查找文件 / 類型 / 符號、一鍵測試運行器以及其他許多我認為是 IDE 基本功能的東西。

不過,我的 Emacs 設置(請隨意取用其中的一些片段),仍不太符合我在 IntelliJ 中得到的開箱即用的效果。

例如,在 IntelliJ 中,配置想使用的 Java 版本是很容易的,不僅包括編譯器,還包括你想堅持使用的 Java 標準 API 版本(因為現在 Java 發展很快,這一點很重要),如果你要使用的特性在你使用的版本上不可用,它會警告你,這點非常好。但在 Emacs 上,這樣做就很有問題,因為按照我使用 lsp-java 的方式,配置 Java 項目需要通過 Eclipse 完成!

當我試圖改變代碼格式,并被迫下載 Eclipse 來改變它的默認規則時,我才痛苦地意識到這一點(它會強制刪除換行符,讓行填滿所配置的整個最大寬度,把代碼弄得一團糟——我真想知道,誰他媽會認為這是一個好的默認做法?。?。

另一方面,Emacs 有 Magit,這是一個令人驚嘆的 Git 用戶界面,感覺很棒。Org Mode 給文本文件帶來了神奇的力量,甚至還有像 elfeed 這樣的東西,它可以讓你不離開編輯器就可以閱讀你最喜歡的新聞(來自 RSS feed 和類似 HackerNews 和 Reddit 的東西)!

但 Emacs 真的更輕嗎?

為了回答 Emacs 是否真的更輕的問題,我實際上在一個星期六的 24 小時內截圖了我的筆記本電腦的電池使用情況,當時我花了一天的大部分時間在 IntelliJ 編碼,然后第二天做了同樣的事情,但是使用 Emacs (在同一個項目中工作,做非常類似的事情)。

盡管周日我花在編程上的時間比較少,但我認為這些圖片讓事情變得非常明顯。

使用 Emacs 的情況,請注意,在一個美好的下午編碼過程中,電池曲線出現了平滑的向下傾斜。

在早上使用 IntelliJ 的情況,你可以看到充滿電后,電量被“兇猛吞噬”,在我晚上回到 Emacs 之前,電量就恢復了正常的使用模式。

并不是說我需要這個才知道 IntelliJ 真的非常耗電!我之所以知道是因為筆記本電腦總是在我使用它的時候明顯變慢了。像工作區切換動畫這樣的體驗變得極其糟糕。

雖然你可以在上面的截圖看到,我充一次電就幾乎可以在 Emacs 上呆上一整天,但使用 IntelliJ 我只花了半個上午就不得不插上充電器。

然而,我在意的主要問題是,風扇的聲音太大,這雖然試圖讓 CPU 保持涼爽,但鍵盤變得太熱,觸摸起來很不舒服。這些因素加在一起,讓我幾乎不可能繼續在我的小筆記本電腦上使用 IntelliJ,或者至少讓我感到真的很不舒服。

最后的感想

很長一段時間以來,我一直想寫一篇關于這個問題的文章??峙陆Y果可能不是很有啟發性。但我仍然認為我上面說的話需要說出來。

Emacs 比任何現代 IDE 都輕得多,同時仍然具有所有重要的特性。我希望 JetBrains 能聽到我的心聲,并把它放在心上、為此做點什么!也許,Fleet 就是解決辦法?!

Emacs 很棒,但它基本上是用愛發電的志愿者在為其努力,因此很多東西感覺真的很不成熟,比如沒有文檔、難以使用等等。這很大程度上表明,只有一家大公司(或少數公司)支持一個產品時,用戶才能真正得到一個完美的東西。但就目前而言,它似乎是我除專業用途外的最佳選擇。我真的很高興它的存在。

https://renato.athaydes.com/posts/switching-from-heavyweight-ides-to-emacs.html

聲明:本文為 InfoQ 翻譯,未經許可禁止轉載。

關鍵詞: 所以遷到了 Emacs

相關閱讀

巨胸护士在线播放视频二区

<i id="bcuty"><sub id="bcuty"></sub></i>

<b id="bcuty"></b>