JavaScript遭嫌棄,“反JS”主義者興起

JavaScript遭嫌棄,“反JS”主義者興起

整理 | 章雨銘 責編 | 屠敏

出品 | CSDN(ID:CSDNnews)

JavaScript是世界上最流行的程式語言之一,已有二十多年的歷史,它也是Web開發人員常使用的三種主要語言之一。JavaScript可以用於各種各樣的目的,從增強網站功能到運行遊戲和基於Web的軟體。

但是一種語言不可能做到完美,在過去的十年裡,JavaScript驅動的網站方法(如:由JavaScript生成的HTML)常常被用在一些無益的情況下。把應用程式(例如:谷歌地圖)和互動式文件(例如:Twitter)混為一談的人數不勝數,建立了很多佔記憶體、效能差又耗電的網站。另外,JS程式碼段相當大,且各瀏覽器廠商對JavaScript支援程度不同,在不同的裝置上會以不同的方式呈現,從而導致展示效果不一致。

所以,很多人會產生一種“反JS”的情緒不足為奇。有些“反JS”激進者甚至希望使用一些不帶JavaScript的網站。這種觀點和“親JS”一樣,都低估了科技發展以及人的能動性的力量。

JavaScript是把雙刃劍

Web發展已經有二十年的歷史了,但是還是有很多人不會使用。數字鴻溝真實的存在,無論是在手機,還是在電腦上使用網站,仍然有很多人對於如何使用感到費解。如果真的在網站中禁用JavaScript,對於這些使用者來說,使用體驗只會更差。因為JavaScript還是有一些優點的,比如:

一個簡單的基於JavaScript構建的購物車更容易使用,相比於每次按下新增商品按鈕後自動重新定向到購物車頁面,所需要的資源更少。

與注重體驗的頁面相比,輸入資料時實時更新並實時通知所需支付費用的稅收計算器,所產生的壓力更小,效率更高,並且需要的來回次數更少。

一家保險公司提供由十幾頁組成的複雜訂閱通道,看起來十分混亂且不易導航。可以用幾個較小的表格代替,將這些表格相互堆疊,可以在一個頁面中即時儲存、編輯和縮小。

如果需要調整設定,閱讀障礙者必須進入其配置面板,在表單中選擇閱讀障礙模式,然後對其進行驗證,重新載入整個網站後可以使用新的樣式。這個操作可以用一個簡單的切換按鈕實現,在任何介面都無需重新載入。

無論是絕對支援JavaScript還是反對JavaScript都不是一種好的解決方法。但是如果我們不強制在互動式文件中使用JavaScript,並且把它作為一種增強使用者體驗的工具就能很好的解決這兩種極端情況帶來的問題。

在使用者體驗和技術能力之間找到合適的平衡點的網站已經是一種常態。在我們有工具和知識可以做得更好的時候,絕對支援或反對JavaScript的看法是落後的。圍繞著JavaScript使用的思維方式已經在行業中發生了轉變,越來越多的人提倡更負責任的方法。

JavaScript 的使用在減少

大多數的前端框架現在都用於元框架(其中Next是領導者),提供伺服器端的渲染與互動,從而在舊的硬體上工作。其中一些框架甚至不再是庫,而是編譯器(如Svelte),可以輸出超級微小和高效的程式碼。

現在微框架已經興起,它們的工作方式沒有變化,但體積卻小了10倍(Preact vs React),而且它們中的大多數甚至更快。還有另一些框架,它們可以編譯成HTML並建立JavaScript互動的 “島嶼”,結合了雙方的優點(這就是Astro)。

所有這些之前提到的框架都嚴重依賴於一個龐大的工具生態系統,而這個生態系統仍然存在問題,不安全,脆弱(而且其中大部分現在被微軟擁有)。但至少他們更加註重使用者體驗。對於那些不喜歡NPM但又想編譯JavaScript的人來說,有一些單一的二進位制檔案,比如(Esbuild),可以直接安裝在系統上,按照自己想要的方式使用。

最後,對於一些真的抗拒JavaScript的人來說,有一些庫可以透過HTML屬性(HTMX,Alpine)來管理Ajax呼叫或dom互動。這些庫已經在“反JS”文化的團隊中取得了很大的成功,比如Python、Ruby甚至JAVA。

但這依然不是萬全之策。我們要消除Angular和React對網站造成的損害,同時保持它們的優勢,仍然需要很多年的努力。但是,至少我們努力的方向是對的,也許很快我們就能夠在2005年的電腦上擁有看起來和感覺上都不像2005年網頁的網站。

你對此有什麼看法呢?你是極端的支援或者反對JS者還是中立者呢?歡迎留言告訴我們。

參考資料:

https://thomasorus。com/about-the-no-js-mindset。html

https://www。cnblogs。com/SanMaoSpace/archive/2013/06/14/3136774。html

https://www。simcf。cc/9122。html

—END—

《新程式設計師001-004》全面上市,對話世界級大師,報道中國IT行業創新創造