Sheon Han 商業 2025年12月1日 上午7:00 Ruby 並非認真的 程式設計語言
Ruby 維持在情感上,而非實用性上。讓我們繼續下去。 插圖:SAMUEL TOMSON
我的小理論是,心理學中的「印記」概念也能應用到程式設計:就像小鵝會決定它遇到的第一個移動生物就是它的父母一樣,初入程式設計的開發者會對他們第一種形成性語言的模式和特質產生難以磨滅的依戀。 機器可讀
關於程式設計的固定版塊。因為當機器接管時,我們至少應該說它們的語言。 對很多人來說,那種語言就是 Ruby。它經常被認為是讓程式設計「點亮」的關鍵;被印記的人會對它懷抱著某種責任感和情感。我能理解。我用一種名為 Java 的糟糕東西寫了我的第一個「Hello world」,但只有當我學習 JavaScript(我知道,我知道)和 OCaml 時,程式設計才開始感覺直覺——這兩者都從根本上塑造了我的品味。 我對 Ruby 的接觸有些延遲。直到我的第四份工作,我才發現自己加入了一個主要使用 Ruby 的團隊。到那時,我已經聽過太多讚美它的優雅之處,充滿了期待,準備被它吸引,體驗其追隨者所描述的那種專業化的開悟。我對它的厭惡是立即的。 晚接觸一種語言,就好像沒有了因印記而產生的、能寬恕缺點的浪漫濾鏡——一種願意將瑕疵視為怪癖的溫柔態度。我看到的不是一件鑲滿寶石的工具,而是一個還沒有完全收到程式設計世界已經發展的訊息的小東西。
Ruby 是由日本程式設計師 Yukihiro Matsumoto(暱稱「Matz」)於 1995 年創建的。除了創造了唯一主要起源於非西方世界的程式設計語言之外,這位出生於大阪、信奉摩門教的實踐者,也以極其友善而聞名,以至於 Ruby 社群採用了 MINASWAN 這個口號,代表「Matz Is Nice And So We Are Nice」(Matz 很友善,我們也是友善的)。 與其美麗的名字相符,Ruby 對眼睛來說也很友善。它的語法簡單,沒有分號或括號。甚至比 Python——一種以可讀性聞名的語言——還要簡單,Ruby 幾乎就像純英文一樣。 程式設計語言通常分為兩大類:靜態類型和動態類型。靜態類型系統就像一組樂高積木,只有形狀和尺寸相符的積木才能互相鎖定,從而使某些錯誤在物理上不可能發生。動態類型允許你將積木以任何你想要的方式組合在一起。雖然這在小規模上理論上更靈活,但當你建造大型結構時,這種自由會適得其反——某些類型的錯誤只有在程式執行時才會被發現。換句話說,當你把重量放在樂高人行橋上時,它會塌成一堆無用的碎片。 Ruby,你可能已經猜到,是動態類型。Python 和 JavaScript 也是,但多年來,這些社群已經開發出複雜的工具,讓它們表現得更負責任。Ruby 目前沒有任何解決方案能與這些相提並論。它太容易導致程式設計師所說的「地雷」,也就是那些讓你不小心打擊自己的腳的特徵。
關鍵地說,Ruby 的效能指標一直名列主要語言的後段(也就是最慢)。 你可能還記得 Twitter 臭名昭著的「Fail Whale」,當服務當機時,螢幕上會出現被鳥類舉起的鯨魚圖案。 可以說 Ruby 在其中負有很大責任。 Twitter 在 2010 年世界盃期間的崩潰,成為了一場警鐘,公司決定將後端遷移到 Scala,這是一種更穩健的語言。
這個轉變帶來了回報:到 2014 年世界盃時,Twitter 在決賽中處理了創紀錄的 32 萬條推文,沒有發生任何中斷。 其基於 Scala 的新後端可以處理的速度比 Ruby 快 100 倍。 在 2010 年代,許多公司取代了大部分的 Ruby 基礎設施,而當遺留的 Ruby 程式碼仍然存在時,新的服務則以效能更高的語言撰寫。
更重要的是,Ruby 所能做的一切,現在都有其他語言做得更好,讓它失去了獨特的利基市場。 在快速腳本編寫和自動化方面,Python、JavaScript 和 Perl 都是強大的競爭者。 Python 雖然也是一種較慢的語言,但在科學計算領域佔據了主導地位,並成為了 AI 的事實標準語言。 JavaScript 則在網路上佔據主導地位。 而 Perl,嗯,正在走向沒落——這讓我並不感到遺憾。 Ruby 現在發現自己處於一個尷尬的中間地帶。
你可能會想知道為什麼人們在 2025 年還在使用 Ruby。 它之所以能存活,是因為它與 Ruby on Rails 存在著寄生關係,Rails 是這個網頁框架,它促成了 Ruby 的廣泛採用,並持續維繫著它的重要性。
當丹麥開發者 David Heinemeier Hansson,也就是 DHH,在 2004 年發布 Rails 時,Ruby 就不再只是日本程式設計師的專利了。 DHH 就像是 Matz 的攝影負片,他是一位英俊的激進派,擁有魅力和教條的特質——對於 MINASWAN 來說是這樣,而且他喜歡在空閒時間在 Twitter 上進行公開爭論和參加賽車錦標賽。
在 Web 2.0 興起和 Facebook IPO 之間,那段如同伊甸園般的時代——當矽谷沉浸在 TechCrunch Disrupt 的歡騰中,並且對即將到來的科技反彈毫無知覺時——Rails 成為了這個框架。
對於新一代新創公司來說,Rails 是個不錯的選擇。Airbnb、GitHub、Twitter、Shopify 和 Stripe 的主要程式碼基礎都是建立在它之上。
\n\n在 2000 年代初期,當建立網頁應用程式非常繁瑣時,Rails 為開發者提供了一個一站式解決方案。與手動串接資料庫、前端和後端不同,Rails 提供了可以直接運作的整合套件。它是一種完全整合的體驗——就像 Frank Lloyd Wright 的 Usonian 住宅,每個細節都設計成符合單一、統一的願景。
\n\n然而,這也正是一個低估了網際網路將會變得多麼巨大的時代。試著去翻修 Usonian 住宅的廚房或增加第二層,你會發現這種統一性變成了一個負擔。原本設計來接待幾位舉止良好的晚餐客人,現在卻要讓它像一個可以容納數百萬名難以管束的訪客的會展中心一樣運作。
\n\n我並不是唯一對 Ruby 持有悲觀態度的。在 Stack Overflow 的年度開發者調查中,它的受歡迎程度多年來一直在下降,從 2013 年的 Top 10 技術掉到今年的第 18 名——甚至還落後於 Assembly。在較新的開發者中,Python 和 JavaScript 的排名要高得多。Ruby 目前仍然是一種專業的安慰物,靠著舊程式碼基礎的慣性以及那些最初被它影響的人的忠誠度而維持著。但僅靠懷舊和一個漂亮的名稱是行不通的。
\n\n這篇文章由 calibre 從 https://www.wired.com/story/ruby-is-nota-serious-programming-language/ 下載。 | Section menu | Main menu |