修復 Enlightenment E16 中一個存在 20 年之久的程式錯誤
我描述了修復 Enlightenment E16 視窗管理員中一個罕見且必然發生的桌面凍結問題的過程,這個問題源於程式碼中牛頓法(Newton's algorithm)在處理文字截斷時的錯誤實作。
背景
這篇文章描述了一位出生於 2004 年的年輕開發者,在日常使用 1997 年問世的經典視窗管理器 Enlightenment E16 時,修復了一個潛伏長達 20 年的程式錯誤。該錯誤源於牛頓法(Newton's algorithm)在處理長標題字串縮減時,因缺乏迭代限制而導致桌面無限循環凍結,這項發現不僅解決了技術債,也引發了技術社群對於老牌軟體與現代開發環境的深度討論。
社群觀點
Hacker News 的討論串充滿了濃厚的懷舊氛圍,許多資深開發者紛紛回憶起 E16 在 1990 年代末期帶來的視覺震撼。對許多人而言,Enlightenment 不僅是一個工具,更是引領他們進入 Linux 世界的誘因。留言者提到,當年看到如透明終端機(Eterm)或極具設計感的佈景主題時,那種超越時代的酷炫感讓他們願意忍受繁瑣的設定過程,甚至因此學會了編寫核心模組或調整顯示參數,最終踏上軟體工程師或系統管理員的職業生涯。
然而,關於 E16 的效能評價在不同時代背景下有著有趣的對比。雖然原文作者稱讚其僅佔用 24MB 記憶體非常輕量,但社群中不乏老牌使用者指出,在 Pentium MMX 166 處理器與 16MB 記憶體的年代,Enlightenment 曾被視為資源怪獸,其華麗的特效在當時遠比 KDE 或 GNOME 1.x 更加吃力。甚至有曾與開發者 Carsten Haitzler(Rasterman)共事的網友回憶,當年他們常為了資源消耗問題與開發者爭論,這種「領先時代」的視覺追求在當時是相當具爭議性的。
此外,社群對於年輕一代開發者願意深入研究並修復比自己年齡還大的軟體感到欣慰。這種行為被視為一種技術傳承,證明了經典軟體即便在現代仍有其獨特的生命力。部分留言者也分享了自己從 E16 轉移到 Windowmaker 或 Afterstep 的心路歷程,並感嘆雖然現代桌面環境如 Ubuntu 變得更加便利,但 E16 所建立的虛擬桌面預覽與操作邏輯,至今仍深深影響著他們在 macOS 或其他現代系統上的工作習慣。
延伸閱讀
在討論中,有使用者提到雖然 Enlightenment 後續開發了 E17 甚至更新的版本,並曾與 Tizen 行動作業系統合作,但對於許多硬派愛好者來說,E16 的設計哲學與可擴充性依然是不可替代的經典。