Adobe Photoshop 1.01 源代码开放下载
20 世纪 80 年代末,托马斯-克诺尔和约翰-克诺尔兄弟开始设计和编写一款图像编辑程序时,他们怎么也想不到自己会为词典增添一个新词。
托马斯-克诺尔是密歇根大学计算机视觉专业的博士生,他在 1987 年编写了一个用于显示和修改数字图像的程序。他在电影视觉特效公司工业光魔工作的弟弟约翰发现,这个程序对编辑照片很有用,但它并不打算成为产品。托马斯说:”我们开发它的初衷是为了个人使用……做起来非常有趣。
渐渐地,这个名为 “Display “的程序变得越来越复杂。1988 年夏天,他们意识到这确实可以成为一个可靠的商业产品。他们将其更名为 “Photoshop”,并开始寻找一家公司发行。幻灯片扫描仪制造商 Barneyscan 将大约 200 份 0.87 版软件作为 “Barneyscan XP “捆绑销售。
在艺术总监罗素-布朗的鼓励下,Adobe 公司决定购买 Photoshop 增强版的发行许可,这也注定了 Photoshop 的命运。交易于 1989 年 4 月敲定,1990 年初,1.0 版本开始发售。
在接下来的十年中,Photoshop 的销量超过了 300 万份。
Photoshop 的第一个版本主要是用 Pascal 编写的,用于苹果 Macintosh,其中一些机器语言用于执行效率非常重要的底层摩托罗拉 68000 微处理器。这并不是一个庞大团队的努力成果。托马斯说:”在第一版中,我是唯一的工程师,而在第二版中,我们有两名工程师。托马斯负责基础应用程序开发,而约翰则编写了许多图像处理插件。
经 Adobe 系统公司许可,计算机历史博物馆很高兴提供 1990 年版本 1.0.1 的 Photoshop 源代码,供非商业使用。除了从苹果公司获得许可的 MacApp 应用程序库外,所有代码都在这里。压缩包中有 179 个文件,包含约 128,000 行代码,其中大部分未加注释,但结构良好。按行数计算,约 75% 的代码是 Pascal 语言,约 15% 是 68000 汇编语言,其余是各种数据。
要下载代码,您必须同意许可条款,该条款只允许非商业性使用,并不授权您通过在网络上发布副本的方式将代码授权给第三方。
下载 Photoshop version 1.0.1 Source Code
源代码评论
软件架构师 Grady Booch 是 IBM 阿尔马登研究院软件工程首席科学家,也是计算机历史博物馆的理事。他对 Photoshop 源代码发表了以下看法:
- “打开构成 Photoshop 1.0 源代码的文件时,我的感觉有点像霍华德-卡特第一次闯入图坦卡门国王的陵墓。有什么奇迹在等着我?
我并没有对自己的发现感到失望。事实上,打开我 20 多年前首次使用的应用程序的狡猾机器,是一次奇妙的旅程。 - 从架构上看,这是一个结构非常合理的系统。接口和抽象的分离是一致的,而将这些抽象组件化的设计决策–一般来说,接口和实现的每种组合都有一个主要类型–也很容易遵循。
- 抽象已经相当成熟。一致的命名、方法的粒度、由于每种类型都抽象得非常好而实现起来几乎令人叹为观止的简洁性,所有这些结合在一起,让人很容易就能辨别出系统的质地。
- 有机会检查 Photoshop 当前的架构,我相信我看到了在现代实现中一直存在的基本结构,尽管肯定是以更先进的形式存在。瓦片、过滤器、虚拟内存的抽象(用于处理远大于显示缓冲区或主存储器通常所能处理的图像)在第一个版本中都有。然而,它的代码行数只有 10 多万行,而当前版本的代码行数则远远超过 1000 万行!无论现在还是过去,大部分代码都与输入/输出以及 Photoshop 需要处理的无数文件格式有关。
- 1.0 版源代码中只有少量注释,其中大部分与汇编语言片段有关。尽管如此,缺少注释根本不是问题。这些代码非常简洁易读,注释甚至可能会妨碍阅读。
- 令人高兴的是,我们还发现了当时的历史遗迹:安迪-赫兹菲尔德(Andy Herzfield)的 Thunderscan 扫描仪软件代码、对早期 TARGA 光栅图形文件类型的支持,甚至还有一些对 Barneyscan 的顺带提及,都散落在代码中。这些都是整个代码库中非常小的部分,但它们的出现提醒我,任何代码都不是一座孤岛。
- 这就是我渴望编写的代码”。
我们都可以从这样的代码中学习。软件源代码是计算机科学家的文学作品,值得我们去研究和欣赏。从内部欣赏 Photoshop。
早期的 Photoshop 截图*
- 屏幕截图由 creativebits 提供, www.creativebits.org.
本文文字及图片出自 ADOBE PHOTOSHOP SOURCE CODE
你也许感兴趣的:
- Photoshop v.1.0.1 源代码以及它的故事
- Adobe 公布足以以假乱真的 P 图新算法 (附代码)
- PS美女试验的惊人结果
- 如何正确的阅读源代码?
- 激怒了码农,查你源代码!” ,免费给王宝强马蓉官司取证
- 微软将开放《我的世界》的AI开发平台源代码
- 具有魔法的 H.264
- 多用户环境中的 rootless Docker
- 【外评】微软的人工智能聊天机器人将 “回忆 “您在其新 PC 上所做的一切
- 【外评】苹果需要解释重新出现已删除照片的错误
你对本文的反应是: