4 ポイント 投稿者 GN⁺ 2024-05-16 | 1件のコメント | WhatsAppで共有

Adobe Photoshopソースコード

ソフトウェアの宝石: コンピュータ歴史博物館の歴史的ソースコードシリーズ

  • Photoshop: デジタル画像をPhotoshopソフトウェアまたは他の画像編集ソフトウェアで変更すること、特に現実を歪める形で変更することを意味する(出典: メリアム=ウェブスター・オンライン辞書、2012年)

Photoshopの誕生

  • 1980年代後半、トーマス・ノールとジョン・ノールの兄弟が画像編集プログラムの設計と実装を始めた
  • トーマス・ノールはミシガン大学でコンピュータビジョンの博士課程に在籍しており、1987年にデジタル画像を表示・修正するプログラムを書いた
  • ジョン・ノールは映画の視覚効果会社Industrial Light & Magicで働き、このプログラムを写真編集に有用に活用した

Photoshopの発展

  • プログラムは徐々に発展し、「Display」という名前で呼ばれるようになった
  • 1988年の夏、このプログラムが商業的に有望であることに気づき、「Photoshop」に改名した
  • スライドスキャナーメーカーのBarneyscanが「Barneyscan XP」という名前で、約200本のバージョン0.87をバンドル提供した

Adobeとの契約

  • Adobeのアートディレクター、ラッセル・ブラウンの勧めにより、AdobeはPhotoshopの配布ライセンスを購入することを決定した
  • 1989年4月に契約が締結され、1990年初頭にバージョン1.0が発売された
  • その後10年間で300万本以上のPhotoshopが販売された

初期Photoshopの技術的詳細

  • 初期のPhotoshopは主にApple Macintosh向けのPascalで書かれ、一部はMotorola 68000マイクロプロセッサ向けの機械語で書かれていた
  • バージョン1ではトーマスが唯一のエンジニアとして作業し、バージョン2では2人のエンジニアが参加した
  • トーマスは基本アプリケーションプログラムを担当し、ジョンは多くの画像処理プラグインを書いた

ソースコード公開

  • Adobe Systemsの許可を受け、コンピュータ歴史博物館は1990年版バージョン1.0.1のPhotoshopソースコードを非商用目的で公開した
  • ソースコードは179個のファイルで構成されており、約128,000行の、コメントがほとんどないよく構造化されたコードから成る
  • コードの約75%はPascalで、約15%は68000アセンブリ言語で書かれている

ソースコードに関する解説

  • IBM Research Almadenのソフトウェア工学担当チーフサイエンティストであり、コンピュータ歴史博物館の理事でもあるグレイディ・ブーチの見解:
    • Photoshop 1.0のソースコードを開くことは、古代遺物の墓を開くようなものだった
    • インターフェースと抽象化の一貫した分離、コンポーネント化された抽象化の設計判断が見事に行われている
    • 現代の実装でも基本構造は維持されている
    • コメントはほとんどないが、コードは非常に読みやすい

初期Photoshopのスクリーンショット

  • ホーム画面: 利用可能なツールを表示
  • ブラシの色、サイズ、テクスチャを選択可能
  • 多様な選択ツールと画像フィルターを提供
  • バージョン3で追加された画像レイヤー機能は初期バージョンには存在しない
  • カスタマイズ機能を提供する環境設定ページ
  • 限られたフォント、フォントサイズ、スタイルを選択可能

歴史的ソースコード公開一覧

  • MacPaintとQuickDrawのソースコード、2010年7月18日
  • APLプログラミング言語のソースコード、2012年10月10日
  • Adobe Photoshopソースコード、2013年2月13日
  • Apple II DOSソースコード、2013年11月12日
  • Microsoft MS-DOS初期ソースコード、2014年3月25日
  • Microsoft Word for Windows バージョン1.1aソースコード、2014年3月25日
  • 初期Digital Research CP/Mソースコード、2014年10月1日
  • Xerox Altoソースコード、2014年10月21日
  • Electronic Arts DeluxePaint初期ソースコード、2015年7月22日

著者紹介

  • レン・シュステクはコンピュータ歴史博物館の創設理事長の名誉理事である

関連記事

  • CHMブログ: 私たちみんなのためのコンピュータ、2023年12月15日
  • CHMブログ: あなたのファービーは何歳?、2023年12月13日
  • CHMブログ: カメ、ブロック、そして思い出、2023年12月5日

GN⁺の意見

  • Photoshopの歴史的価値: Photoshopはデジタル画像編集に革命を起こし、そのソースコードを通じて初期ソフトウェア開発の歴史的文脈を理解できる。
  • コードの教育的価値: コメントはほとんどないが、よく構造化されたコードはソフトウェア工学教育に有用な資料になり得る。
  • 技術的進歩: 初期Photoshopの構造と現代版の構造を比較することで、ソフトウェアアーキテクチャの進化を理解できる。
  • 批判的視点: 初期ソースコードの公開には歴史的価値があるが、商用利用が制限されているため、実際の活用には限界がある。
  • 関連プロジェクト: GIMPのようなオープンソース画像編集ソフトウェアも類似の機能を提供しており、Photoshopの代替として検討できる。

1件のコメント

 
GN⁺ 2024-05-16
Hacker Newsの意見

Hacker Newsコメントまとめ要約

  • Adobeソースコードのアーカイブ経験

    • AdobeでPhotoshop、Illustrator、PostScriptなどのソースコードをアーカイブした経験の共有。
    • Thomas Knollの元のMacフロッピーディスクのバックアップを使い、Mac Plusとシリアルケーブルでファイルを転送。
    • 1988年7月6日付の0.54バージョンのファイルを含む、さまざまな古代の圧縮アーカイブ形式のファイル群。
    • すべてのコードをPerforceサーバーにアーカイブしたが、初期のIllustratorバックアップは破損した外付けディスク上にあった。
  • Adobeとのソースコード交換経験

    • 90年代半ばにAdobeを訪問し、ソースコードを交換した経験。
    • PhotoshopはMacAppベースで、Windows上で動作するレイヤーがあった。
    • Photoshopのコードの一部と色空間計算部分を持ち帰ったが、ほとんどは無視された。
    • 現在のソースコードにMacAppの痕跡が残っているのか確認したい。
  • UXの一貫性

    • UXが今でも全体として同じであることへの驚き。
    • MacBook Pro M1発売初期、Adobe PhotoshopのSiliconベータ版が最も高速に動作していた。
    • 現在は再び遅くなっている。
  • ソースコードの美しさは理解しにくい

    • ソースコードを見たが、その美しさを理解するのは難しい。
    • Rustを学びながらコード構造を考えていた中で、Photoshopや3D Studio MaxのようなUIをどう構築するのか気になった。
    • コード構造を学べる良い資料を知りたい。
  • Adobe Photoshop 1.x版の記事

    • 1990年のAdobe Photoshop 1.x版に関する2013年の記事。
  • 商標の一般名詞化の防止

    • Adobeは商標の一般名詞化を防ぐために努力している。
    • "photoshopped" の代わりに "Adobe® Photoshop® Elementsソフトウェアで画像を強化" のような正しい使用例を提示。
  • 古いソースコード公開への称賛

    • 古いソフトウェアのソースコードを公開する企業への称賛。
    • 多くのソースコードは、時間の経過や度重なる買収によって失われた可能性がある。
    • バージョン管理の普及は比較的新しい現象であり、多くのソースコードはランダムなテープバックアップ、フロッピーディスク、あるいはバインダーに印刷された状態で存在している可能性がある。
  • Photoshop初期バージョンの体験

    • Adobe以前のPhotoshopを病院で見た経験。
    • 当時のMacApp版はベータ状態だった可能性がある。
    • Tom KnollのB-スプラインアルゴリズムをカーブエディタの基礎として使用。
  • John Knollの経歴

    • John Knollは『スター・ウォーズ』プリクエルのFXリードであり、『ローグ・ワン』を監督した。
    • プリクエルの舞台裏ドキュメンタリーはよく保存されている。