Photoshop v.1.0.1 源代码以及它的故事
当Thomas Knoll和John Knoll兄弟在20世纪80年代末开始设计和编写一个图像编辑程序时,他们无法想象他们会在字典中添加一个词。
密歇根大学(University of Michigan)计算机视觉专业的博士生Thomas Knoll在1987年编写了一个程序来显示和修改数字图像。他的弟弟约翰(John)在电影视觉效果公司Industrial Light & Magic工作,发现这款软件对编辑照片很有用,但它还不能称作是一个产品。托马斯说:“我们最初开发它是为了我们自己的用途……这是一件很有趣的事情。”
渐渐地,这个叫做“显示(Display)”的程序变得越来越复杂。在1988年夏天,他们意识到它确实能成为一种有用的商业产品。他们把它重新命名为“Photoshop”,并开始寻找一家公司来开发它。总共大约200份0.87版本被幻灯片扫描仪制造商Barneyscan捆绑为“Barneyscan XP”一起销售。
当Adobe的艺术总监拉塞尔·布朗(Russell Brown)决定购买一个授权版本的Photoshop软件时,Photoshop的命运就被锁定了。这项交易于1989年4月敲定,1.0版于1990年初开始发售。
在接下来的十年里,已经售出了超过300万张ps。
Photoshop的第一个版本主要是用Pascal语言为苹果Macintosh编写的,为提高效率,有些是用摩托罗拉68000微处理器的汇编语言编写的。”并不是你想象的我们有一个巨大的团队“,托马斯说,“对于版本1,我是唯一的工程师,对于版本2,我们有两个工程师。当托马斯在基础应用程序上工作时,约翰编写了许多图像处理插件。
在Adobe系统公司的许可下,我们很荣幸为非商业用途提供Photoshop 1990年版本1.0.1的源代码。所有的代码都在这里——除了苹果授权的MacApp应用程序库。压缩文件夹中有179个文件,包含了大约128000行大部分未注释但结构良好的代码。根据行数,大约75%的代码是Pascal语言,大约15%是68000汇编语言,其余的是各种类型的数据。
要下载代码,您必须同意许可的条款,该条款只允许非商业使用,不允许您通过在web上其他地方发布副本向第三方授权。
1990版的 Adobe Photoshop 用户手册: https://www.computerhistory.org/collections/accession/102640940 和指导: https://www.computerhistory.org/collections/catalog/102640945。
对源代码的评论
软件架构师Grady Booch是IBM Research Almaden软件工程的首席科学家,也是计算机历史博物馆的受托人。他提供了以下关于Photoshop源代码的一些发现:
- 打开构成Photoshop 1.0源代码的文件,我感觉有点像霍华德·卡特(Howard Carter)第一次闯入图坦卡蒙国王(King Tutankhamen)的陵墓。什么奇迹等待我吗?
- 我对我的发现并不失望。事实上,开启我20多年前就开始使用的一种神奇的软件,这是一次奇妙的旅程。
- 在体系结构上,这是一个结构良好的系统。接口和抽象的分离是一致的,为将这些抽象组件化而做出的设计决策——通常每个接口和实现的组合都有一个主要类型——很容易理解。
- 抽象是相当成熟的。一致的命名、方法的粒度、实现的近乎惊人的简单性(因为每种类型都被很好地抽象出来了),所有这些结合在一起使得识别系统的结构变得很容易理解。
- 我曾有机会查看了现在版本Photoshop的当前架构,我相信我看到的基本的结构和现在是一致的,尽管也改进了不少。在第一个版本中,Tiles、过滤器、虚拟内存的抽象(用于处理比显示缓冲区或主内存大得多的图像)都在那里。然而,它的代码行数超过了10万行,而当前版本的代码远远超过了1000万行!从那时到现在,大部分代码都与输入/输出以及Photoshop要处理的大量文件格式有关。
- 1.0版本的源代码中只有很少的注释,大多数注释都与汇编语言片段相关。话虽如此,缺乏注释根本不是问题。这段代码是如此的有水平,如此的容易阅读,以至于注释甚至可能会成为阻碍。
- 很高兴能找到那个时代的历史遗迹:负责安迪·赫斯菲尔德(Andy Herzfield)的雷击扫描仪软件的代码,支持早期TARGA光栅图形文件类型,甚至在代码中散布着对Barneyscan的一些传递引用。这些都是总体代码库中的非常小的元素,但是它们的样子提醒我,没有代码是孤岛。
- 这是我渴望写的那种代码。
这是我们都可以学习的代码。软件源代码是计算机科学家的文献,值得研究和重视。享受Photoshop的内部美景吧。
早起Photoshop截图
主屏幕,显示可用的工具。
Photoshop允许你选择画笔颜色以及大小和纹理。(Mac电脑的第一个颜色是1987年的Macintosh II。)
有一些复杂的选择工具,以及各种各样的图像过滤器。1994年的第3版中缺少的一个重要特性是能够将图像分割成多个层。
preferences页面允许对特性进行一些定制。
字体、字体大小和字体样式的选择是有限的。文本输入到对话框中,然后移动到图像中。
Historical Source Code Releases
- MacPaint and QuickDraw Source Code, July 18, 2010
- APL Programming Language Source Code, October 10, 2012
- Adobe Photoshop Source Code, February 13, 2013
- Apple II DOS Source Code, November 12, 2013
- Microsoft MS-DOS Early Source Code, March 25, 2014
- Microsoft Word for Windows Version 1.1a Source Code, March 25, 2014
- Early Digital Research CP/M Source Code, October 1, 2014
- Xerox Alto Source Code, October 21, 2014
- Electronic Arts DeluxePaint Early Source Code, July 22, 2015
本文文字及图片出自 www.computerhistory.org
你也许感兴趣的:
- Adobe Photoshop 1.01 源代码开放下载
- Adobe 公布足以以假乱真的 P 图新算法 (附代码)
- PS美女试验的惊人结果
- 如何正确的阅读源代码?
- 激怒了码农,查你源代码!” ,免费给王宝强马蓉官司取证
- 微软将开放《我的世界》的AI开发平台源代码
- 【外评】电脑从哪里获取时间?
- 【外评】为什么 Stack Overflow 正在消失?
- Android 全力押注 Rust,Linux 却在原地踏步?谷歌:用 Rust 重写固件太简单了!
- 【外评】哪些开源项目被广泛使用,但仅由少数人维护?
你对本文的反应是: