调查 MacPaint 的源代码 | $→$

主要观点:MacPaint 是一款单色光栅图像绘画程序,引入了鼠标驱动控制等功能,是苹果 Macintosh 1984 年的两款启动应用之一,体现了早期 Macintosh 的特色,通过其源代码研究了应用的设计和实现。
关键信息

  • 1982 年 Atkinson 开发原型绘画程序,1983 年开始开发 MacPaint 并多次迭代,1984 年随 Macintosh 发布,之后有多个版本更新,1988 年由 Claris 发布 2.0 版,1998 年停产。
  • Bill Atkinson 未接受计算机专业训练,其在 Lisa 和 Macintosh 项目中做出重要贡献,MacPaint 是他的作品之一。
  • 开发过程中使用 Lisa 原型机,通过 Polaroids 记录界面演变,用“Monkey”进行测试,Susan Kare 提供宝贵反馈。
  • 代码方面,大部分为 Pascal 语言,约三分之一为 Motorola 68000 汇编语言,定义少量数据类型,大量使用全局变量,程序是事件驱动的,有消息循环等。
  • 有一些有趣的算法和设计,如快速缓冲区到屏幕复制、桶填充(种子填充)、FatBits 模式、内存分配失败处理等。
  • 竞争方面,有其他绘画程序发布,MacPaint 界面被竞争对手采用,虽不是最早绘画程序但影响深远,Photoshop 受其影响。
    重要细节
  • 1983 年 MacPaint 界面接近最终版本,1984 年 5 月和 9 月分别发布 1.3 和 1.4 版,1985 年 Microsoft 发布新鼠标和重命名的 Paintbrush,苹果发布 System Software 2.0 包含 1.5 版 MacPaint。
  • Atkinson 本科学习化学和生物化学,研究生学习神经科学,在苹果的工作经历包括开发股票组合评估器、UCSD Pascal 系统移植等,1979 年参观 Xerox Parc 后参与 Lisa 项目。
  • MacPaint 代码中数据类型多来自 QuickDraw,通过各种技巧优化桶填充算法,FatBits 模式有局限性但很重要,内存分配通过分段和 MaxMem 系统例程处理。
  • 竞争对手包括 Microsoft 的 Doodle 和 Doug Wolfgram 的 Mouse Draw 等,MacPaint 虽不是最早但影响了后续绘画程序的界面设计。
  • 对于 MacPaint 源代码的研究,对不同受众有不同价值,如对历史学家研究工程权衡和算法历史有帮助,对学生可用于代码解释、设计替代等方面。
阅读 7
0 条评论