對獨立程序員的贊美

jopen 9年前發布 | 19K 次閱讀 程序員
對獨立程序員的贊美

Photo: Dominic Alves, Flickr

英文原文:A Salute To Solo Programmers

帕金森定理【注1】告訴了我們,「在工作能夠完成的時限內,工作量會一直增加,直到所有可用時間都被填充為止。」將其應用到軟件上,這意味著應 用程序傾向于成為臃腫軟件(bloatware)、極為臃腫的程序,其復雜程度使得它們幾乎不可能被調試和維護。今天,我們看到了更開心的反例,從過去到 現在,由「隱士級的程序員」創造的有野心的產品。

很久以前,我們對一名「獨立攀登者」肅然起敬,該程序員在一臺準系統電腦【注2】上獨立地編寫了一個杰作,比如只有 64kb 內存的 Apple II( 是的,K——不是 M,更不要說是 G 了),1Mhz 的 8 位處理器(重申,是 M 而不是 G)。

過去,這個巨人就是 Paul Lutus【注3】。據他自己承認,他符合隱士級程序員的風格:

「在計算機業務方面,我因俄勒岡州隱士而廣為人知。根據謠傳,我編寫個人計算機程序時,與世隔絕,避開吃飯和睡覺,在無盡頭遁走的狀態下工作。為了 使得一些后續的編程想法不被丟掉,我掛掉了重要來訪者的電話,我住在荒野之中的、一條骯臟公路的盡頭。我在這里是為了告訴你,這些狠毒的謠言是千真萬確 的。」

當我在 1981 年訪問美國加州 Cupertino 市蘋果公司總部時,Paul Lutus 因其 Apple Writer 字處理軟件的名氣,已經在 Bandley Drive Hall 贏得了一個挨著喬布斯和 Wozniak 的位置。崇拜者說過,他是如何開著私人飛機,收齊版稅支票,隨后立即飛回他在樹林中的、俄勒岡州的寓所。

剛出現字處理行業時( Exxon Office Systems 公司及其 Vydec 專 業的工作站),我帶著蔑視看了看 Lutus 小巧、功能不全的玩具。然后我參觀了 Apple 倉庫,在那兒我看到了一輛鏟車正裝載 Apple Writer 箱子的面板。好幾堆軟件!經過速算、帶著一堆疑問,我得出了一個結論:Apple Writer 將很容易擊敗所有那些帶著「pros」的字處理工作站的軟件。

在當時我理解不了,但是我目睹了一個人的破壞。

(對于真正的極客,Lutus 的網站 arachnoid.com 充斥著讓人喜歡的「孤獨攀登者」的趣聞和態度:

  • 他使用 GraForth,這是他對 Forth 編程語言的圖像和聲音的擴展,以說服某個個體來訪問:

我過去使用我編寫的 GraForth 圖像語言,以磁盤的形式創建了一個「計算器信件【注4】」,它顯示了圖片和消息。之后,山頂上的一間小屋,門開了,然后音樂響起。其設計初衷是為了說服某些人來俄勒岡州拜訪我,它起到了作用。

它沒有處理計算機部分和 24 小時的延遲,而是使用一臺桌子上的設備,就能得到合理地、精確到秒的結果。對于時間,這近乎奇跡。

在《Programming Handheld Calculators》文章結尾,卻停留在了關于維基百科的、令人驚奇的跑題上了。)

Bill Budge 是另一個知名的獨立程序員。在 1981 年,Bill Budge 在 Apple II 上編寫了一個名叫 Raster Blaster 的彈球游戲。鑒于 1 MHz 的 8 位處理器「明顯地」無法支持該游戲所要求的、快速的圖像、沖突處理和有趣的聲效,這款游戲絕對是個壯舉。

他攀登的下一個舞臺是 Pinball Construction Set—— 他最終因此而成名,這是一套模塊,像我這樣的傻瓜可以將其組合為自定義的彈球設計。在當時,也就是 1983 年,這(無疑)被視作又一項讓人驚嘆的成就,使用了每一個 6502 芯片周期來取悅用戶的完美方案。(之后,市場人員劫持了這個詞語,將其包裝為 Surprise and Delight?,帶著渺茫希望使用這個詞語,希望掩蓋產品的空洞。)

當不知名的計算機智者使用他的時候,程序員的工作就跑了走在水面上的用戶的腳下,要確保這些腳不要被弄濕。Pinball Construction Set 就做到了這一點。

就在同一年,我在 Apple 發布會上排隊時,碰到了 Bill Budge。對于他超人般的編程技巧,我表示了崇拜之后,也表達了擔憂,他在 SoftTalk 雜志的一篇文章上揭示了 Pinball Construction Set 內部的圖形算法。那次揭示會不會暗中破壞他的名聲?這位年輕智者給出了永生難忘的回答:一本食譜書無法造就出一名廚師長。

故事到了這里,如果我不提及 Bob Frankston 和 Dan Bricklin,就無法結束本文,他倆是具有劃時代意義的 VisiCalc【注6】的聯合作者。VisiCalc 催生了 Excel,也就是說,VisiCalc 的影響,每一天、在大大小小的每個商業角落,都能被感受到。

那個時代就是這樣的……計算機機器操作系統,是應用到程序員身上的 PC(個人電腦)里的「P」。他或她(那個時候大多數是他)孤獨地坐在樹林中的小屋里,就可以對宇宙產生深遠影響

多么懷舊呀。今天,貌似不再可能出現如此非凡的成就了。

我寫本文時,我正在 iMac 下載最新的 Xcode,它是 Apple 的編程環境和工具集。它需要 7.77G 的磁盤空間。我在寫本文時使用的、「過時的」字處理軟件(Pages 2009)有 388M;更新的、更愚蠢的 Pages 版本 5.5.3 占用了 478M。

操作系統已經變得如此復雜,以致于孤立的一個人不可能內在化他們的運作方式,以編寫讓用戶在水上行走的代碼了。對于「2015 年的 Paul Lutus」而言,是沒有那樣的環境了。

但是,真有這么恐怖嗎?

結果顯示,操作系統和開發工具的大小和復雜度,并沒有呈現出完全不可逾越的障礙;我們仍然能夠找到大量的、由一個人完成的程序。一個例子是 Preview【注7】,它是 Mac 一體化的文件預覽和編輯程序。雖然這篇維基百科的詞條過時了,也不那么熱情,然而 Macworld 網站的一篇名為《The many superpowers of Apple’s Preview》文章(第一部分第二部分)公正地宣示了這個應用的力量和靈活性。請閱讀這篇文章,和我一起,為那位獨立的、不知名的程序員所付出的勞動,表示感激,他從 NeXT 時代起就陪伴著這款軟件。

Preview 甚至催生了 CAD 文件,它是 .DAE 擴展,亦稱 Collada 文件,是面向 CAD 程序的一種交換格式。你可以把玩 3D 圖像,而無需原始的 CAD 程序。令人印象深刻———對于 iTunes(好事者稱之為 Apple’s Windows Vista)、Pages、甚至 Mail 的凄涼狀況,把我帶向了黑暗思想,這么多年了,這些應用仍然有 bug、仍然會崩潰。難道是因為有太多廚師的緣故?

我們有了 Gus Mueller 的 Acorn,它比 Preview 更新、但同樣有野心,它是「面向人類的圖像編輯器」,現在它在 Mac 蘋果商店的版本是 5。為了對這款應用有個深度和廣度方面的了解,可以瀏覽這家公司官網上的文檔。除了「直接」 的技術文檔,還有一個 FAQ,Acorn 社區的指示,以及面向初學者、中級和高級用戶的、海量視頻教程。(Gus Mueller 把他的這家位于華盛頓州埃弗里特市的公司叫做「媽媽和爸爸的店鋪」,因為他的妻子 Kristin 在不做理療師時,為他寫過文檔。)

在我的 iMac 上,Acorn 5 只有 24.6M。不管公平與否,把它和動輒 1.5G 或更多的應用(Microsoft Word、Excel……)、或有著 478M 的 Pages 做個比較吧。

有龐大,也有希望。


  • 注1:帕金森定理(英語:Parkinson’s law),由英國作家西里爾·諾斯古德·帕金森提出的俗語。西里爾·諾斯古德·帕金森在 1958 年,將這個觀察,擴充為一本書,《帕金森定理:對于進度的追求》(Parkinson’s Law: The Pursuit of Progress)。在此書中,帕金森定理被當成一個數學等式,用來描述官僚組織隨著時間而擴大的速率。帕金森觀察到,一個官僚組織中的雇員總數,通常以 每年5-7% 的速度增加。他認為,有兩股力量造成了這個增長, (1) 一個官員希望他的下屬增加,但不希望解雇造成敵人增加;以及(2) 官員會制造工作給彼此。https://zh.wikipedia.org/wiki/%E5%B8%95%E9%87%91%E6%A3%AE%E5%AE%9A%E7%90%86
  • 注2:準系統電腦(barebone computer),又稱“骰仔機”,指的是已組裝一半的個人電腦,具有機殼、電源供應器、主板、散熱系統。使用者可依照自身需求以及預算而自行決定所需 的 CPU、內存、儲存裝置(硬盤及光驅)等以購買及安裝。對于使用者和廠商而言,是具有彈性的電腦銷售和選購方式。https://zh.wikipedia.org/wiki/%E6%BA%96%E7%B3%BB%E7%B5%B1%E9%9B%BB%E8%85%A6
  • 注3:保羅·盧特思(Paul Lutus,1945 年-)是一名美國程序員、飛行員、帆船水手和一名 NASA 的工程師。他是 Apple Writer、Arachnophilia、AboutTime 的作者。他有一個關于 Careware 的新想法。https://zh.wikipedia.org/wiki/%E4%BF%9D%E7%BD%97%C2%B7%E5%8D%A2%E7%89%B9%E6%80%9D
  • 注4:A ‘Computer Letter’ is a letter, document, or computer file that is sent electronically from one desktop/laptop/mobile phone to another, with the aid of programmes such as Microsoft Outlook, Hotmail, and Yahoo. Whilst most are satisfied with the term ‘Email’, others prefer to use this terminology to reduce the chances of confusion. Used by only a rare number of individuals, the’Computer Letter’ terminology originated in Southern England and will inevitably spread to more northern regions such as Manchester and Newcastle. Since origin, the term has been abbreviated to ‘CL’ and ‘Com-let’.http://www.urbandictionary.com/define.php?term=Computer+Letter
  • 注5:星歷表,簡稱歷表,源自希臘文?φ?μερο?(ephemeros),刊載一個或多個天體每天特定時刻位置的數據表列,通常還附帶其他補充材料;而天文年歷也是星歷表的一種。https://zh.wikipedia.org/wiki/%E6%98%9F%E6%9B%86%E8%A1%A8
  • 注6:VisiCalc 是世界上第一套電子表格軟件,由丹·布李克林(Dan Bricklin)和鮑伯·法蘭克斯頓(Bob Frankston)發展而成,1979 年 10 月跟著蘋果二號電腦推出,成為蘋果二號電腦上的“殺手應用軟件”。https://zh.wikipedia.org/wiki/VisiCalc
  • 注7:預覽程式(Preview)是 Mac OS X 操作系統中的影像檢視器及 PDF 閱讀器。跟 Mac OS X 本身一樣,是從 NeXT 的 OpenStep 操作系統里衍生出來的。https://zh.wikipedia.org/wiki/%E9%A0%90%E8%A6%BD%E7%A8%8B%E5%BC%8F

譯文: 《對獨立程序員的贊美 》 臘八粥

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!