今天看到了Photoshop1.0的源碼,有兩個想不到:
1. 竟然沒有用C語言,而是PASCAL。
2. 代碼中幾乎沒啥注釋。

僅有的一點兒注釋也都是匯編相關的,不過沒有注釋根本不是問題,因為代碼寫得太清晰易懂了,添加注釋反而會成為一種阻礙。
IBM Almaden 研究院的軟件工程首席科學家,也是UML創始人之一的Grady Booch曾經研究過這個版本的代碼,他說:
Photoshop的架構設計得非常精良,尤其是每種類型都抽象得如此出色,以至于帶來令人驚嘆的簡潔實現。
Photoshop 第一個版本中建立的基本結構例如圖塊、濾鏡、虛擬內存抽象在如今的Photoshop中依然存在,顯示了抽象的強大生命力。
Grady Booch 說:這就是我渴望編寫的代碼!
![]()
這樣的代碼是如何寫出來的呢?
今天我們來聊聊Photoshop的故事。
0 1
無心插柳
托馬斯和約翰是兄弟倆,小時候深受父親的影響,有兩個愛好:
1. 喜歡攝影,經常到地下室的暗房去學習沖洗照片。
![]()
2. 計算機
兩人被父親帶回家的那個外形奇特的盒子而深深吸引,這是一臺Apple II Plus電腦。
![]()
很明顯,這兩個年少時的愛好決定了兩人未來的發展方向。
哥哥托馬斯高中畢業后進入密歇根大學,專業是計算機工程,這讓他接受了正規的計算機基礎知識的訓練。
![]()
到了博士階段,托馬斯把注意力轉向了計算機視覺。
1987 年,他購買了一臺蘋果 Macintosh Plus 電腦,以便幫助他完成關于“數字圖像處理”的博士論文研究。
然而,令他失望的是,這臺 Mac 電腦無法顯示圖像中的灰度級。
為了解決這個問題,托馬斯不得不自己動手,編寫了一個程序來模擬灰度效果。
隨著研究的深入,類似的小程序越來越多,逐漸形成了一個工具集。
弟弟約翰從南加州大學畢業后,加入了喬治·盧卡斯建立的工業光魔,負責《星球大戰》《深淵》等電影的電腦特效。
![]()
![]()
有一年,弟弟約翰在休假是到密歇根大學探望哥哥托馬斯,發現了托馬斯編寫的這些圖形處理工具。
約翰在工業光魔時看過一次皮克斯做的圖形演示,其中有很多命令行驅動的Shell工具,和哥哥做的很像。
于是,兩人就一起合作,把這些小工具給整合起來,形成了一個叫做Display的軟件。
![]()
約翰拿著Display回到了工業光魔,在使用中他提出了更多的要求,比如:
把圖像保存成其他格式,這樣就可以通過別的程序打印了....
圖像在屏幕上看起來太暗了,能不能做一點兒伽馬校正......
這些來自好萊塢頂尖特效工作室的實際問題,一個個地被拋給了遠在密歇根的托馬斯。
托馬斯現在面臨一個兩難的選擇:是繼續寫論文,還是和弟弟一起,繼續完善這個軟件?甚至商業化。
青少年時期就養成的興趣和愛好,讓他選擇了后者。
更重要的是,兄弟倆似乎發現了一個全新的機會:在個人電腦上進行圖像編輯,這實在是太酷了。
托馬斯繼續改進Display,幾個月后,托馬斯決定發布新的軟件:ImagePro。
但是這個名稱已被別人占有,托馬斯就想了一個新名稱:Photoshop。
![]()
至此,Photoshop正式登上歷史舞臺。
0 2
震撼Adobe
當托馬斯繼續完善Photoshop的時候,弟弟約翰正在硅谷四處推銷。
讓人失望的是,硅谷的那幫家伙竟然不識貨,紛紛拒掉了Photoshop。
只有一家叫BarneyScan的公司愿意試試,可以和他們的掃描儀硬件一起捆綁銷售。
最終,Photoshop賣出了可憐的200份!
1988年9月,約翰來到Adobe公司繼續推銷,他精心準備了一個演示,用Photoshop的魔法棒工具創建了一個帶有柔和邊緣的蒙版,這一下子就把Adobe創始人John Warnock以及藝術總監Russell Brown給震住了。
因為其他的圖像處理軟件在創建選區的時候,只能用矩形/圓形工具圈選,或者用套索工具一點點手畫圈選,但是Photoshop的魔法棒具有智能選區的能力,圖片中有藍天,你點一下藍天,就可以自動選取整個天空。
而柔邊蒙版意味著可以像攝影暗房那樣做漸變處理,可以做柔焦、漸隱,光暈等專業效果。
![]()
換句話說,Phtoshop把攝影暗房的技術給數字化了,相比同時代的其他類似軟件,這是非常領先的技術。
但是由于Adobe的的核心產品和矢量圖形相關的, PostScript(打印語言)和 Illustrator(矢量繪圖軟件)才是主業,商業和工程部門的人并不看好Photoshop這個處理像素的“玩具軟件”。
這時候Adobe的創始人和藝術總監起了關鍵作用,他們決定先爭取一個短期的授權許可,先讓Phtoshop成為Illustrator輔助軟件,賣一段時間看看再說。
1990年2月,Adobe Phtoshop 1.0正式發布。
![]()
0 3
站在時代風口
Photoshop是一個不折不扣的“硬件殺手”,因為它是基于像素的編輯方式,會把一幅圖片整體加載到內存中。
例如一張A4大小、300DPI的RGB圖像,其未壓縮的數據量大約是:
(8.27英寸 * 300DPI) * (11.69英寸 * 300DPI) * 3個顏色通道 ≈ 2600萬像素
每個像素占用1字節(8位/通道),那么這張圖在內存中就需要約 25MB 的空間。
如果在考慮到多個圖層,撤銷等操作,那消耗的內存更嚇人了。
90年代內存非常貴,PC能配個32M內存就不錯了,Photoshop跑起來非常吃力,不得不把硬盤當做虛擬內存使用。
硬盤速度比內存低幾個數量級,所以操作極其卡頓,聽到硬盤嘎吱嘎吱地瘋狂讀寫數據,是每個90年代Photoshop用戶的集體回憶。
所以,Adobe公司最初對銷量也不看好,覺得每個月能賣個250份就不錯了。
但是,當歷史的大潮來襲的時候,你擋都擋不住:
掃描儀市場開始發展,掃描質量大幅提升,價格下降
彩色顯示器和彩色打印機普及
個人電腦因為摩爾定律越來越快越來越便宜。
Photoshop完美地站在了桌面出版、計算機成像、傳統攝影的交叉口,它用強大的圖像處理能力,迅速成了PC上的殺手級應用。
很多人為了用上Photoshop,都會購買更高性能,更大內存的電腦!
在接下來的10年里,Photoshop竟然賣了超過300萬份!把競爭對手遠遠拋在身后,成為圖像處理領域的絕對標桿。
Adobe看到Photoshop如此流行,都超越了自己的主業PostScript和Illustrator,干脆花了3450萬美元買斷了它的所有權,從此成了Adobe的旗艦產品。
哥哥托馬斯因為開發Photoshop而放棄了博士學習,現在看是這個選擇是正確的,他打造了一個改變世界的軟件。
04
尾聲
Photoshop 1988年誕生,今年已經37歲了。
這幾十年間,Photoshop已經完全占領了用戶的心智,甚至從名詞變成了動詞,“ps一下”,這是大家對一個產品最大的褒獎。
但是,生成式AI的出現,直接動搖了 Photoshop 賴以存在的底層邏輯。
Photoshop 過去的那些“獨門絕技”,正在悄悄變成所有人的日常能力。
37歲的Photoshop,也感受到了AI的壓力,正在用Generative Fill、Firefly 等能力重新定義自己,努力從一個修圖軟件,變成創意的加速器。
未來會怎么樣,我們并不知道,只能說:Photoshop 依然在,但它已經不是過去那個Photoshop了。
源碼下載地址:
https://computerhistory.org/blog/adobe-photoshop-source-code/
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.