《WIRED》雜誌文純分享
程式設計師不再那麼謙遜了,也許那是因為他們停止使用 Perl 寫程式了。
「如果 Perl 有任何壓倒一切的願景或教條,那僅僅是事實:或許根本不應該有程式設計的教條(dogma)。」
即使在其使用高峰期,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/
留言
張貼留言