在瀏覽器中執行 Adobe 1991 年的 PostScript 直譯器

Hacker News·

retro-ps 專案透過模擬 Motorola 68000 處理器與 LaserJet 硬體,讓 Adobe 原始的 1991 年 PostScript Level 2 ROM 能直接在現代瀏覽器中執行。

背景

這篇文章介紹了一個名為 retro-ps 的專案,開發者成功將 1991 年 Adobe 為 HP LaserJet II/III 印表機開發的 PostScript Level 2 擴充卡 ROM 提取出來,並透過模擬 Motorola 68000 處理器與印表機硬體環境,使其能在現代瀏覽器中直接執行。這項嘗試不僅讓三十多年前的 Adobe 官方參考實作重新復活,更證明了 PostScript 作為一種成熟的頁面描述語言,其核心邏輯在數十年後依然具備實用價值。

社群觀點

在 Hacker News 的討論中,這項專案引發了資深技術人員對 PostScript 輝煌時代的集體懷舊。許多評論者指出,PostScript 不僅僅是一種列印格式,它本質上是一種具備強大能力的程式語言。DonHopkins 提到,Adobe 共同創辦人 John Warnock 曾將 PostScript 視為一種「語言母板」,這種設計哲學甚至延伸到了 Owen Densmore 開發的類 Smalltalk 物件導向系統,以及 Sun Microsystems 推出的 NeWS 視窗系統。對於曾參與過 NeWS 開發的工程師而言,在 PostScript 環境下編寫程式帶有一種類似 Lisp 的互動感,這種開發體驗在 90 年代初期的 Sun 工作站上表現優異,令人好奇若在現代強大的硬體效能下執行,其潛力將如何被釋放。

然而,這項技術的歷史也充滿了競爭與挑戰。有留言者回憶起 PostScript 在數位出版產業轉型期扮演的關鍵角色,當時甚至有工程師為了突破限制,成功破解了 Type 1 字體的加密技術。有趣的是,社群中也出現了一些關於 PostScript 靈活性的奇聞軼事,例如曾有人將印表機編程為網頁伺服器,雖然這引發了關於列印任務衝突的幽默質疑,但也側面證實了該語言的圖靈完備性。

在實務應用層面,部分開發者開始思考這種模擬方式是否能優於現有的 pdf.js 等解決方案。有人分享了自己為了處理特定的圖像格式(如 jbig2),不得不自行編寫 WebAssembly 模組的經驗,認為這種輕量化的模擬思路或許能提供更精簡、無依賴的替代方案。不過,並非所有人的體驗都一帆風順,部分使用者反映在嘗試上傳檔案時遇到了渲染停滯或伺服器負載過高的問題,這也反映出將老舊硬體模擬搬上瀏覽器時,在穩定性與資源分配上仍有挑戰。此外,針對 Adobe 近年來的訂閱制政策,社群中也不乏幽默的諷刺,戲稱這項來自 1991 年的技術是否也需要支付月費才能使用。

延伸閱讀

在討論過程中,社群成員分享了許多珍貴的歷史文件與程式碼庫。DonHopkins 提供了關於 Hyperties 工作站瀏覽器的設計回顧,以及 UniPress Emacs 2.20(即 Gosling Emacs)的原始碼,其中包含了 C 語言與 PostScript 的介面實作。此外,Owen Densmore 關於「語言母板」的電子郵件紀錄與《瑞士軍刀 NeWS:可程式化網路設施》白皮書,也是深入了解 PostScript 早期願景的重要資源。對於對早期物件導向編程感興趣的讀者,Owen Densmore 開發的 class.ps 系統則是研究 PostScript 擴充性的經典案例。

Hacker News

相關文章

  1. 透過瀏覽器內建 Linux 虛擬機器與 USB/IP 橋接 WebUSB,拯救老舊印表機

    24 天前

  2. 一款 1990 年代的 Atari ST/TOS 文書處理軟體至今仍受愛好者支持

    2 個月前

  3. EmulatorJS

    3 個月前

  4. LT6502:一款基於 6502 的自製筆記型電腦

    3 個月前

  5. 我的每日新聞:用點矩陣印表機印出來看

    6 天前