斯托曼:JavaScript 不適合 GNU Emacs 的罪魁禍首並非語言本身!

【CSDN 編者按】本文是自由軟體之父 理查德·馬修·斯托曼(Richard M. Stallman,本文簡稱 RMS )在 EmacsConf 2022 大會上發表的主題演講,他認為 Emacs 應該摒棄繁複的、非必要的流程,簡化、明確、細化所有功能,他還提到,JavaScript 真正不適合 GNU Emacs 的根本原因在於,人們使用它的方式,而非語言本身,罪魁禍首則是瀏覽器廠商。

原文連結:https://emacsconf.org/2022/talks/rms/

作者 |Richard M. Stallman 編譯 | 鄧曉娟

我用特殊的 Emacs 模式來幫助我對檔案中所有數以萬計的論文和筆記進行分類,還有特殊的 Emacs ‍鍵盤快捷鍵,使寫書有點像彈風琴——Donald Knuth

這句玩笑話被譽為 Emacs 的真實寫照,一個讓現代電腦科學鼻祖 Donald Knuth 都覺得複雜的工具。

Emacs 是著名的集成開發環境和文字編輯器,在美國許多高校中,Emacs 是許多老教授的心頭好。但由於它的功能實在太過於豐富且深入,導致在行業內有一個玩笑:「用了 10 年的 Emacs,仍不敢說自己已經熟練運用了……」

的確,無論是過去還是現在,Emacs 使用起來總是給人一種「手忙腳亂」的感覺。對於一款工具而言,即使其能力十分完備,也很容易因為操作太過繁複而「勸退」使用者,除了功能以外,如何提升開發者的使用體驗也非常重要。

12 月 4 日,自由軟體基金會 (FSF) 和 GNU 項目創始人 RMS 以線上形式在 EmacsConf 2022 大會發表了演講。演講主題為《What I’d like to see in Emacs》,提出了改進 Emacs 的方法。

珍惜軟體自由,捍衛軟體自由

珍惜軟體自由,捍衛軟體自由

RMS 表示,GNU Emacs 是 GNU 作業系統的一部分,而 GNU 作業系統的目標不僅是要在技術層面和使用層面做得好,它的主要目的,甚至可以說是總體目的,是給大眾自由使用軟體的自由,並且幫助他們珍惜和捍衛這份自由。

他認為,如 GNU 這樣的軟體包,他作為一個提供便利的程序,很多時候不僅僅是為了提供軟體的有用性,更應該通過提供有用的工具,為整體的道德和社會目標做出貢獻。正是通過 GNU Emacs,RMS 了解到如軟體許可證和如何捍衛自由。

在談到 GNU Emacs 的程式語言時,RMS 表示不希望有 Emacs Lisp 以外的擴展語言。因為 Emacs Lisp 是其一直支持的 Lisp 的變體,它是隨著 Emacs 的發展而發展的。而最不應該支持的語言,RMS 則認為是 JavaScript。

這不是語言本身的問題,RMS表示,自己並不了解 JavaScript,只是聽說它相當笨拙,設計得不好,但這不是他認為不應該支持 JavaScript 的原因。RMS 認為,JavaScript 真正不適合 GNU Emacs 的根本原因在於,人們使用它的方式。大多數情況下,Web 伺服器會將 JavaScript 編寫的程序不知不覺地發送到使用者的機器上,使用者根本不知道它在裡面做了什麼事情,使用者基於對網站的信任而進行訪問,卻會被神不知鬼不覺地窺探,甚至這些窺探的動作通常不會是出於好意,這是非常嚴重的問題。

RMS 表示,這個問題並非來自語言本身,「罪魁禍首」其實是現代瀏覽器廠商。在默認的情況下,會拉入發送到他們的 JavaScript 程式碼,並運行它來做任何事情。他認為這些舉動是違背了 RMS 一直倡導和追求的「自由」,並且認為,讓 Emacs 不支持 JavaScript 的原因,也是來自於捍衛自由的一種方式。

Emacs 還有很多可以改進的地方

Emacs 還有很多可以改進的地方

Emacs 應該捍衛你的自由,也應該幫助和引導你捍衛自由,它應該阻止你因為非必要的選擇而妥協,引導你跳過那些不懷好意的瀏覽器和選項,在其他軟體或機器上運行。

因此,為了能夠讓 Emacs 更準確地幫助大家捍衛軟體自由,RMS 認為應該更新《Emacs Lisp 程式設計簡介》,以涵蓋 Emacs 的變化,如詞法綁定。最初,Emacs Lisp 曾經完全是動態範圍,就像一些最早的 Lisp 直譯器一樣。這是一個變化,應該有一個仔細的文件或說明來更新介紹。

其次,需要讓使用者更容易理解 Emacs 的功能,不要為了玩文字遊戲和隨意給包起名字,包的名字應該幫助你記住這個包是做什麼的,省略純粹的文字遊戲,堅持使用人們會記住的名字。

另外,RMS 希望在 Emacs 中使用所見即所得的方式編輯格式化的文件(就像使用 LibreOffice)。這將是一個很大的最佳化,但它可以由許多中等規模的項目來組成。如果現在開始著手一點點地做,那麼在若干年後,我們就會有一些絕對驚人的東西。

還有,維護層面的模組化很重要,可以減少使用者去了解 Emacs 的維護細則,隨著不斷為 Emacs 增加更多設施,模組化是一種有回報的投資。

除此之外,RMS 還希望回到由瀏覽器決定網頁如何呈現的情況。減少瀏覽器的功能,允許由網頁提供者控制外觀。我們應該保護自己、保護我們的使用者不受影響。

擯棄繁複的、非必要的流程,簡化、明確、細化所有功能,這是 RMS 給 Emacs 的改進建議。工具的意義不是在於「秀操作」,而是真正解決使用者問題,幫助使用者達成目的,幫助人們爭取、捍衛自己的權利。正如過去的使用者們還擁有自由控制瀏覽器佈局的權利,如今由於瀏覽器的複雜性的爆發增長,已經失去了這種權利。如果要以犧牲、妥協人們權利去換取服務商提供的功能,難道不是一種倒退嗎?

相關文章

放棄笨重的 IDE,轉而嘗試 Emacs

放棄笨重的 IDE,轉而嘗試 Emacs

摘要: IDE 對於開發者而言,重要性不言而喻,但隨著功能愈發強大,它們對硬體的要求也日益提高,甚至越好用的 IDE 就越笨重。 連結: h...

Python 與 JavaScript 做比較公平嗎?

Python 與 JavaScript 做比較公平嗎?

在討論應該使用 Python 還是 JavaScript 構建項目時,一般我們都不會說只使用一種程式語言來構建所有的元件。 在現代軟體開發中...

TypeScript 這十年

TypeScript 這十年

【CSDN 編者按】很多時候,僅從名稱上來看,不少人對 TypeScript 與 JavaScript 傻傻分不清楚,或許只知道 TypeS...

最強 AI ChatGPT 真要取代程式設計師?

最強 AI ChatGPT 真要取代程式設計師?

【CSDN 編者按】ChatGPT 一出,「程式設計師要失業了」、「程式設計師要下崗了」之聲不絕於耳,引得程式設計師們不由得一陣驚慌,最強 ...