1715794437
2024-05-15 15:12:15
ソフトウェアの宝石: コンピューター歴史博物館の歴史的ソース コード シリーズ
フォトショップ、他動詞、しばしば大文字の ˈfō-(ˌ)tō-ˌshäp Photoshop ソフトウェアまたはその他の画像編集ソフトウェアを使用して、特に現実を歪める方法で (意図的に欺瞞的な目的で) (デジタル画像を) 変更すること
— メリアム・ウェブスター オンライン辞書、2012 年
トーマスとジョンのノール兄弟が 1980 年代後半に画像編集プログラムの設計と作成を始めたとき、辞書に単語を追加することになるとは想像もできませんでした。
トーマス・ノール
ジョン・ノール
ミシガン大学でコンピュータ ビジョンを専攻する博士課程の学生であるトーマス ノールは、1987 年にデジタル画像を表示および変更するプログラムを作成しました。 映画視覚効果会社インダストリアル・ライト・アンド・マジックで働いていた彼の弟のジョンは、これが写真編集に役立つことに気づきましたが、製品としての使用を目的としたものではありませんでした。 トーマス氏は、「もともと私たち自身の個人的な用途のために開発したもので、とても楽しかったです。」と語った。
「ディスプレイ」と呼ばれるプログラムは徐々に洗練されていきました。 1988 年の夏、彼らはそれが確かに信頼できる商品になり得ることに気づきました。 彼らはそれを「Photoshop」という名前に変更し、それを配布する会社を探し始めました。 バージョン 0.87 の約 200 コピーが、スライド スキャナ メーカー Barneyscan によって「Barneyscan XP」としてバンドルされました。
Photoshop の運命は、Adobe がアート ディレクターのラッセル ブラウンに勧められて、Photoshop の強化版を配布するためのライセンスを購入することを決定したときに決まりました。 契約は 1989 年 4 月に完了し、バージョン 1.0 は 1990 年初めに出荷を開始しました。
その後 10 年間で、Photoshop は 300 万部以上販売されました。
Mac 上の Photoshop のオリジナル バージョンのボックスとディスク。
Photoshop の最初のバージョンは、主に Apple Macintosh 用の Pascal で書かれており、実行効率が重要となる基盤となる Motorola 68000 マイクロプロセッサ用のいくつかの機械語が組み込まれていました。 それは大規模なチームの努力ではありませんでした。 Thomas 氏は、「バージョン 1 ではエンジニアは私だけでしたが、バージョン 2 ではエンジニアが 2 人になりました。」と述べました。 Thomas が基本アプリケーション プログラムに取り組んでいる間、John は多くの画像処理プラグインを作成しました。
Photoshop 1.0.7のスプラッシュ画面。
Adobe Systems Inc. の許可を得て、コンピューター歴史博物館は、Photoshop の 1990 バージョン 1.0.1 のソース コードを非営利目的で公開します。 Apple からライセンス供与された MacApp アプリケーション ライブラリを除くすべてのコードはここにあります。 zip フォルダーには 179 個のファイルがあり、約 128,000 行のほとんどコメントされていないが、適切に構造化されたコードで構成されています。 行数で見ると、コードの約 75% が Pascal で、約 15% が 68000 アセンブラー言語で、残りはさまざまな種類のデータです。
コードをダウンロードするには、ライセンス条項に同意する必要があります。この条項では非営利使用のみが許可されており、Web 上の他の場所にコピーを投稿することによって第三者にライセンスを供与する権利は与えられません。
ダウンロード Photoshop バージョン 1.0.1 のソース コード
ソースコードの解説
ソフトウェア アーキテクトの Grady Booch は、IBM Research Almaden のソフトウェア エンジニアリングの主任研究員であり、コンピューター歴史博物館の理事でもあります。 彼は Photoshop のソース コードについて次のような見解を示しています。
- 「Photoshop 1.0 のソース コードを構成するファイルを開いたとき、ツタンカーメン王の墓に初めて侵入したハワード カーターのような気分になりました。 一体どんな不思議が私を待っていたのでしょうか?
- 私は見つけたものに失望しませんでした。 実際、20 年以上前に初めて使用したアプリケーションの狡猾な機構を開くのは素晴らしい旅でした。
- アーキテクチャ的には、これは非常によく構造化されたシステムです。 インターフェイスと抽象化は一貫して分離されており、これらの抽象化をコンポーネント化するために行われた設計上の決定 (通常、インターフェイスと実装の組み合わせごとに 1 つの主要なタイプを使用) は従うのが簡単でした。
- 抽象化はかなり成熟しています。 一貫した名前付け、メソッドの粒度、各型が非常に適切に抽象化されているための実装のほとんど息を呑むほどの単純さ、これらすべてが組み合わされて、システムのテクスチャを簡単に識別できるようになります。
- Photoshop の現在のアーキテクチャを調べる機会があったので、確かにより進化した形ではあるものの、基本的な構造が現代の実装にも残っていることがわかると思います。 タイル、フィルター、仮想メモリの抽象化 (表示バッファやメイン メモリが通常処理できるよりもはるかに大きい画像に対応するため) はすべて最初のバージョンにあります。 それでも、コード行数は 100,000 行強でしたが、現在のバージョンでは 1,000 万行をはるかに超えていました。 昔も今も、コードの多くは入出力と、Photoshop が対応する必要がある無数のファイル形式に関連しています。
- バージョン 1.0 のソース コードにはいくつかのコメントしかなく、そのほとんどはアセンブリ言語のスニペットに関連付けられています。 とはいえ、コメントがないことは単純に問題ではありません。 このコードは非常に読みやすく、コメントが邪魔にさえなるかもしれません。
- 当時の歴史的痕跡を見つけるのは楽しいことです。Andy Herzfield の Thunderscan スキャナ用ソフトウェアに対応するコード、初期の TARGA ラスター グラフィック ファイル タイプのサポート、さらには Barneyscan へのいくつかの参照がコード内に散在しています。 これらはコード ベース全体の非常に小さな要素ですが、その外観を見ると、どのコードも孤立していないことがわかります。
- これは私が書きたいと思っている種類のコードです。」
そして、これは私たち全員が学ぶことができる種類のコードです。 ソフトウェアのソース コードはコンピュータ科学者の文献であり、研究され評価される価値があります。 Photoshop を内側から眺めてみませんか。
Photoshop の初期のスクリーンショット*
利用可能なツールが表示されたホーム画面。
Photoshop では、ブラシの色だけでなく、サイズやテクスチャも選択できます。 (最初のカラー Mac は 1987 年の Macintosh II でした。)
いくつかの洗練された選択ツールと、豊富な種類の画像フィルターがありました。 1994 年のバージョン 3 に付属していた重要な欠落機能の 1 つは、画像を複数のレイヤーに分割する機能でした。
設定ページでは、機能の一部をカスタマイズできました。
フォント、フォント サイズ、フォント スタイルの選択肢は限られていました。 テキストはこのダイアログ ボックスに入力され、画像内に移動されました。
過去のソースコードリリース
- 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 日
- 初期のデジタルリサーチ CP/M ソースコード、2014 年 10 月 1 日
- Xerox Alto ソース コード、2014 年 10 月 21 日
- エレクトロニック・アーツ DeluxePaint の初期ソース コード、2015 年 7 月 22 日
#Adobe #Photoshop #ソース #コード #CHM