跳到主要內容

程式設計師不再用 Perl 寫程式

《WIRED》雜誌文純分享

程式設計師不再那麼謙遜了,也許那是因為他們停止使用 Perl 寫程式了。

「如果 Perl 有任何壓倒一切的願景或教條,那僅僅是事實:或許根本不應該有程式設計的教條(dogma)。」

Perl 曾幾何時無處不在。或者至少給人這種感覺。在千禧年前後,似乎幾乎每個網站都是建立在這個腳本語言(scripting language)的基礎之上。它處理大量的文字——在語言內部就具備強大而便捷地執行此操作的機制——它甚至被用於生物資訊學(bioinformatics),整理和攪動遺傳數據。根據一份清單,使用 Perl 的公司範圍廣泛:亞馬遜、Google、雅虎、德意志銀行、Akamai、花旗銀行、康卡斯特、摩根士丹利、MozillaCraigslist 的很大一部分就是用 Perl 程式撰寫的。

即使在其使用高峰期,Perl 的受歡迎程度也總是令人有點驚訝。Perl 是一種不可否認的凌亂語言。它經常被稱為「網路的強力膠布」,程式設計師們開玩笑說它是一種「唯寫」(write-only)語言:你用它來寫程式,但很少能(成功地)讀懂它。

Perl 具有一種合併混雜(amalgamated mashup)的性質,所有這些都是為了服務其座右銘:「殊途同歸」(There’s More Than One Way to Do It, TMTOWTDI)。就像英語中有同義詞一樣,Perl 有多種方法可以寫出相同的東西。雖然這在某種程度上是程式語言的常見特徵,但 Perl 似乎想要用它來猛烈衝擊你。舉例來說,有不止一種方法來編寫條件陳述句,從使用傳統的「`if`」到「`unless`」;到在一行中倒著寫一個 `if` 陳述句;甚至是一個涉及問號和冒號的三部分運算子(operator)。我清楚地記得,在 2000 年代初期,有一天我用 Perl 寫了程式碼,而第二天就看不懂自己寫了什麼。

但這種混亂和巴洛克式的結構實際上是故意的,是 Perl 背後更廣泛哲學的一部分。該語言的創作者,拉里·沃爾(Larry Wall),曾受過語言學培訓,他的初衷是與妻子一起成為一名涉及稀有語言的傳教士。沃爾最終走上了不同的道路,並完全投身於程式撰寫。但他對語言如何運作的深刻思考從未離開過他。

沃爾的觀點似乎是,對語言純潔性(linguistic purity)的癡迷被高估了。英語有來自法語、希臘語、德語,甚至阿卡德語(Akkadian)的詞彙,背叛了它蜿蜒曲折的歷史和多源的起源。我們拆分不定詞並懸掛修飾語。我們有雙關語,無論是故意的還是無意的。那麼,當涉及到如何寫一個 `if` 陳述句時,一點點的古怪又算得了什麼呢?沃爾將演化視為語言發展過程的一部分。這裡正在發生一個有機的過程,最終的產物不一定需要井然有序。因此,無論是一種旨在編寫腳本還是十四行詩的語言,對語言建構採取一種廣泛且不帶評判的態度至關重要。

Perl 有它的「殊途同歸」來做事,而英語有其眾多的風格和靈活的本質,這種本質可以容納從烹飪食譜到 俳句、購物清單到福克納的一切。這就是真正開放式(open-ended)事物的標誌。正如沃爾曾經說過的:「我堅信一種語言……應該是一種無道德的藝術媒介。」如果 Perl 有任何壓倒一切的願景或教條,那僅僅是事實:或許根本不應該有程式設計的教條。

澄清一下,我從來都不是 Perl 的深度用戶。它的語法和凌亂對我來說蓋過了它的力量,當我接觸到 Python 井然有序的結構時,我奔向了那個語言,再也沒有真正回頭。這或許暗示了這種語言失色的原因。即使在 1998 年,在其鼎盛時期,就有人提出 Perl 的 臃腫可能導致人們渴望轉向更「乾淨」的東西。無論原因為何,Perl 不再像過去那樣受歡迎了。

儘管如此,我發現自己又回到了這種奇怪的語言,我認為這是因為它核心的 謙遜。當我們認識到我們的世界比我們可能理解的更複雜時,我們需要謙遜,即使或尤其當涉及到我們自己製造的大型技術系統(AI,咳咳)。在一個充滿例外、 邊緣案例(edge cases)和猖獗複雜性的世界中,單一的綜合理論或模型是行不通的。我們需要緩慢、摸索的方法,而 Perl 演化出來的 多元主義可以指引我們方向。

Perl 甚至可以教導我們關於我們自己。如果我必須選擇一種與 Perl 距離最遠的語言,那可能是 Lisp。Lisp 大約在 1960 年開發出來,它優雅、結構上幾乎是數學化的。正如對它的定義所描述的那樣:「軟體的馬克士威方程組」(Maxwell’s Equations of Software)——只是為了讓您對其深奧(esotericism)有所了解。Perl 當然不是那樣。它是有機的、有時令人惱火。換句話說,儘管它很凌亂,但它是一種屬於人民的語言。

這就是程式語言的本質:它們實際上是為人而設計的;它們不能僅僅是能被機器解析(parsable)的。在經典教科書《電腦程式的結構與解釋》(Structure and Interpretation of Computer Programs)中,作者們明確指出:「因此,程式必須是寫給人讀的,而只是附帶地寫給機器執行的。」是的,笑話說 Perl 是「唯寫語言」的——但你總是可以看出它是人類寫出來的。

我承認,Perl 的復興是不太可能的。但也許 Perl 的教訓是永恆的。它要求我們在程式語言及其設計方面,少一些珍視(precious)——多一些人性。只有這樣,我們才有可能彌合我們與機器之間的鴻溝。

本文作者Samuel Arbesman是《程式碼的魔力》(The Magic of Code)一書的作者,也是 Lux Capital 的駐場科學家。

WIRED  2025年7月28日

https://www.wired.com/story/programmers-arent-humble-anymore-nobody-codes-in-perl/






留言

這個網誌中的熱門文章

大團體覺醒LGAT課程:英文維基百科+Claude AI

資料來源: 1. 英文版維基百科(有數處註明:[需要引文來驗證],顯示共創的痕跡) 2. 詢問道德標準較高的AI Claude的回覆 中文化:Google AI Gemini Claude: LGAT課程,指的是個人發展計劃,通常包括大型團體參與者參加的密集多日研討會。這些計劃於1970年代出現,並以各種形式持續至今。 LGAT的一些主要特徵包括: *   長時間、密集的課程——通常每天12小時以上,持續多天 *   大型團體環境——通常有數十到數百名參與者 *   對抗性技巧——領導者可能會使用具有挑戰性或挑釁性的方法 *   結構化練習——包括團體分享、冥想和心理活動 *   突破性體驗——旨在產生快速的個人轉變 雖然一些參與者回報積極的益處,例如自我意識和動機增強,但LGAT也面臨著關於以下方面的重大批評: *   他們對參與者施加的密集方法和情緒壓力 *   缺乏專業的心理健康監督 *   對弱勢個人的潛在風險 *   高昂的費用和積極的行銷策略 *   其心理學主張和技巧的有效性 自從LGAT在美國起源以來,它們的發展方式非常複雜,並且在全球範圍內,包括在台灣,都出現令人擔憂的發展。讓我分享一個更廣泛的視角: 歷史發展: *   1971年從EST(Erhard研討會訓練)開始 *   衍生出眾多分支,如Landmark Forum、Lifespring和許多本地化的變體 *   方法在全球傳播,並經常針對不同的文化進行調整/修改 全球常見的擔憂: 1.  財務剝削 ——高額費用和招募他人的壓力 2.  心理操縱 ——剝奪睡眠、受控環境、情緒強度 3.  類似邪教的元素:     *   造成對計劃的依賴     *   將參與者與持懷疑態度的家庭成員隔離開來     *   使用內部語言和層級結構     *   ...

美國總統川普台積電投資宣布白宮記者會(英中對照)

中文化:第一部分Google Gemini ,其餘 OpenAI ChatGPT 【川普總統】 1:30 Today, Taiwan Semiconductor is announcing that they will be investing at least $100 billion in new capital in the United States over the next short period of time to build state-of-the-art semiconductor manufacturing facilities. I think mostly it will be in Arizona, which is a great state. 今天,TSMC宣布將在接下來的短期內,於美國投資至少 1000 億美元的新資本,以興建最先進的半導體製造廠。我認為大部分將位於亞利桑那州,那是一個很棒的州。 I like it because I want it, but I want most of them, actually. We want big, and we want the most powerful AI chip in the world to be made right here in America. It will be a big percentage of the chips made by their company. As you know, they're based mostly in Taiwan, and they're far and away the biggest – there's nobody even close. 我喜歡這樣,因為我想要這樣,但實際上,我想要他們的大部分產能。我們想要大規模的生產,並且我們希望世界上最強大的 AI 晶片能在這裡,在美國製造。這將佔他們公司生產的很大一部分。你們知道,他們主要在臺灣設廠,而且他們是遙遙領先的龍頭,沒有其他公司比得上。 This $100 billion investment will go into building five cutting-edge fabrication facilities in the gr...

OpenAI前員工X爆料&楊立昆臉書〈諷刺文〉

【OpenAI ex-employee & Yann LeCun's sarcasm】 🚀 📣 OpenAI前員工Jacob Hilton在X上的爆料全文 📣 🚀 一年多前,當我離開 OpenAI 時,我簽署了一份 「不貶低協議」(non-disparagement agreement) ,並且未披露協議本身,沒有其他原因,只是為了避免失去我的 「既得股權」(vested equity) 。  該協議明確表示,作為簽署的回報,我被允許保留我的既得股權,並且沒有提供任何其他東西。 我不明白為什麼有人會簽署它,如果他們認為這不會對他們的權益產生影響。 我以良好的條件離開了OpenAI,所以我認為幾乎所有離職員工都遵守了這份協議。 在簽署協議之前,我無意批評OpenAI,但對於放棄這樣做的權利感到失望。 昨天,OpenAI 聯繫我,要求我解除該協議,隨後KelseyTuoc在Vox上刊登調查報告: 由於 AI 的變革潛力,開發先進 AI 的主要實驗室必須為那些希望為公共利益發聲的人提供保護。 其中首先是對不報復的具有約束力的承諾。 即使是現在,OpenAI仍可 阻止員工出售其股權,使其在未知的時間內變得毫無價值。 OpenAI 在一份聲明中表示,「從歷史上看,前員工無論在哪裡工作,都有資格以相同的價格出售;我們預計這一點不會改變。」 我相信OpenAI的這項聲明是出於誠實的意圖。 但考量到 OpenAI先前曾拿能否取得 (既得股權變現) 流動性作為一種恐嚇策略,許多前員工仍不敢發聲。 我邀請OpenAI直接與前員工聯繫,以澄清他們將始終以合法可執行的方式獲得平等的流動性的機會。 在他們這樣做之前,大眾不應指望前僱員會坦誠相待。 本人致OpenAI 的許多善良和才華橫溢的前同事們:我希望您們能夠理解為什麼我覺得有必要公開談論這個議題。 該合約與我們對安全和有益的AI的共同承諾不一致,您值得更好的工作合約條件。 原文連結: https://twitter.com/JacobHHilton/status/1794090550863200728 😏 楊立昆在臉書上的〈諷刺文〉 😏 來ClosedAI工作吧!隨著 AGI 即將到來,您 將擁有 目前 估 值 42 X 百萬的6次方美元(sextillionnollars) 公司 的 股票 。 如果您辭退,...