歴史
Macintoshプログラマーズワークショップ
Macintosh Programmer's WorkshopまたはMPWは、Apple Computerによって作成されたClassic Mac OSオペレーティングシステム用のソフトウェア開発環境です。 Macintosh開発者にとっては、System 7.xおよびMac OS 8.xおよび9.x用のアプリケーションを構築するための主要なツールの1つでした。当初、MPWはAppleのプロの開発者プログラムの一部として購入できましたが、CodeWarriorに取って代わられた後、Appleは無料でダウンロードできるようにしました。 Mac OS Xでは、Project Builder IDEに置き換えられ、最終的にXcodeになりました。
設計
MPWは、68kおよびPowerPCアセンブラー、Pascal、C、C ++コンパイラーを含むコマンドライン環境とツールを提供しました。シェル環境は、Unixシェルの設計とやや似ていますが、Macintoshの文字セットとGUIを中心に設計されており、通常の端末環境を「ワークシート」インターフェースに置き換え、シェルスクリプトの任意のセクションを選択して実行したり、再入力なしでコマンドをやり直します。さらに、コマンドラインツールには、プログラムのコマンドライン機能への制限されたアクセスを提供するCommandoという名前のある程度標準化されたグラフィカルインターフェイスが一般的に提供されていました。デバッガは、今日のほとんどのIDEのようにMPWに統合されていませんでしたが、言語コンパイラは、デバッガで使用されるシンボリックデバッグ情報ファイル形式をサポートしていました。 MPWは、 SADE (Symbolic Application Debugging Environment)と呼ばれるソースレベルのデバッガーをサポートしていました。 SADEはMPWツールではありませんが、MPWと同様のユーザーインターフェイスを備えた個別のアプリケーションとして実行されました。
Appleのコンパイラには、他のプラットフォームでは一般的ではない機能がいくつかありました。たとえば、Pascalコンパイラはオブジェクト指向でしたが、CおよびC ++コンパイラには長さの接頭辞付き文字列のサポートが含まれていました(Pascal指向のAPIに必要)。
PascalはMacintoshソフトウェア開発のためのAppleの元々の優先言語であり、MPWはPascalのサポートのみで最初にリリースされました。 ACコンパイラはMPW 2.0でリリースされました。 MPW Cコンパイラは、GreenhillsによってAppleの契約の下で作成されました。さらに、元のMPW Cコンパイラは、そのカジュアルで頻繁にユーモラスなエラーメッセージ(「この機能を既に実行しました」)で知られていました。 PowerPCの移行後、Appleがオリジナルをシマンテックによって書かれたコンパイラに置き換えたとき、これらの癖は引き継がれませんでした。 Pascalのサポートは、言語の人気の低下により、90年代半ばには提供されなくなりました。
MPWは常にプロの視聴者を対象としており、パッケージの価格が高いため、趣味の開発者が使用することはほとんどありませんでした。フリーウェアになった頃には、SymantecとMetrowerksの製品や、NeXTから継承され、OS Xで無料で配布されているApple独自の開発ツールに取って代わられていました。パーティコンパイラ。MetrowerksとAbsoftの両方で使用されている手法です。 AppleはMPWのさらなる開発を公式に中止し、それを実行するOS Xの最後のバージョンは10.4 'Tiger'であり、Classic環境をサポートする最後のバージョンです。 Appleは、ソフトウェアの廃止後もずっとサポートしていたWebサイトとメーリングリストを維持していましたが、そのサイトは現在Xcodeページにリダイレクトされています。
MPWシェル
MPWシェルは、出力をファイルおよびウィンドウにリダイレクトする機能を備えていました。ファイルが開いている場合、出力はファイルと開いているウィンドウに送られます。この出力のリダイレクトには、ファイルシステムコールからの大幅なパッチ適用が必要であったため、この機能を継承するためにツールが特別なことをする必要はありません。MPWシェルがすべての作業を行いました。
MPWシェルコマンド言語はUnix csh言語に基づいていましたが、Macintosh GUIの主な機能をサポートするために拡張されました。メニュー、ダイアログ(プロンプト)、および新しいシェルウィンドウを作成する簡単なコマンドがありました。カーソルを制御し、MPWスクリプトまたはツールをメニュー項目に簡単に添付できます。コマンドキーのショートカットを指定できます。ウィンドウのサイズと場所を制御できます。これらの機能は、複雑なビルドおよびパッケージングプロセスがすべて精巧なスクリプトによって制御される商用の本番環境で人気がありました。
シェルには、Unixのシェルといくつかの重要な違いがありました。たとえば、従来のMac OSにはUnix fork()に匹敵するものがなかったため、MPWツールはシェルのサブルーチンとして効果的に呼び出されました。一度に実行できるのは1つだけで、ツール自体は他のツールを実行できませんでした。これらの制限は、古典的なMac OSの「Unixのようなシステム」であるMacRelixプロジェクトのインスピレーションでした。
ルックアンドフィール
機能的には、 ワークシートはテキストエディタードキュメントとxtermウィンドウのクロスです。各ワークシートウィンドウは、ファイルに永続的にバインドされています。ユーザーは、キーボードのEnterキーを介して実行できるコマンドを含む、ウィンドウ内の任意の場所に入力できます。コマンド出力が挿入ポイントに表示されます。 xtermウィンドウとは異なり、MPWワークシートは常に視覚的な編集モードであり、ユーザーが自由に再編成できます。したがって、ワークシートは、純粋にコマンドスクリプト、純粋にテキストドキュメント、または2つの混合物(ソフトウェアプロジェクトの履歴、メンテナンス手順、テスト結果を説明する統合ドキュメント)になります。市販のBBEditテキストエディターは、Mac OS Xで「シェルワークシート」と呼ばれる機能を保持します。Emacsテキストエディターは、プラットフォーム間で機能する同様の機能であるシェルバッファーを提供します。
その他のツール
MPWにはmakeのバージョンが含まれていました。その構文は概念的にはUnix makeの構文に似ていましたが、依存関係を示すMacRomanの長いf文字です。さらに重要なことに、シェルの制限によりmakeプログラムがツール自体を実行できなかったため、実行するコンパイル/リンクアクションのスクリプトを作成し、それをシェルに配信して実行する必要がありました。ほとんどの場合これで十分でしたが、前のアクションの結果に基づいてオンザフライで決定を下すことができるメイクファイルを除外しました。
MPWツールとして実装されていませんが、パッケージには、その歴史を通じていくつかのソースレベルのデバッガーも付属していました。 Source680とSADE(Symbolic Application Debugging Environment)はMC680x0システムで使用され、Power Mac Debugger(開発中はR2Dbとして知られている)はPowerPCシステムにローカルとリモートの両方のデバッグサービスを提供しました。デバッグ中のコンピューターで「nub」を選択します。
MPWツールの作成
MPWには、開発者が独自のMPWツールを構築するのに十分な標準Cライブラリのセットが含まれていました。多くのUnixユーティリティは、ほとんど変更せずに移植できます。難点の1つは、UNIXとは異なるMac OSの改行規則でした。もう1つはMac OSのパス名区切り文字「:」でしたが、多くのUnixユーティリティは「/」を想定していました。多くのUnixユーティリティは、パス名にスペースが埋め込まれていないと想定していました。これはMacでの一般的な慣行です。
何年もの間、GNUツールチェーンにはlibibertyの一部としてMPWの移植性サポートが含まれていました。これは、General Magicおよび他のいくつかの開発者が使用するMPWホストクロスコンパイラをサポートするために使用されました。
歴史
MPWは、1985年後半にRick Meyers、Jeff Parrish、およびDan Smith(現在のDan Keller)によって開始されました。 Macintosh Programmer's System、またはMPSと呼ばれる予定でした。 (偶然3つの姓がMPSで始まることに注意してください。) 'MPS'は、この結果、常にMPWシェルの作成者の署名でした。 MPWはLisa Workshopの後継であるため、彼らはMacintosh Programmer's Workshopと改名することにしました。 MPW以前は、MacアプリケーションをLisaで相互開発する必要がありました。
MPW Pascalコンパイラは、Lisa Pascalコンパイラから派生したものです。 AppleのLarry TeslerはNiklaus Wirthと協力して、Lisa Pascalコンパイラの最新バージョンの1つにKen Doyleが組み込んだObject Pascal拡張機能を考案しました。これにより、MacAppが有効になりました。
初期の貢献者には、Rick Meyers(プロジェクトリーダーおよびMPWシェルコマンドインタープリター)、Jeff Parrish(MPWシェルエディター)、Dan Smith(MPWシェルコマンド)、Ira Ruben(アセンブラー、およびBackup、PasMatなどを含む多くのツール)、Fred Forsman(Make、Print、SADE、およびアセンブラマクロプロセッサ)、Al Hoffman(Pascalコンパイラ)Roger Lawrence(エラーメッセージを含むPascalおよびCコンパイラ)、Ken Friedenbach(リンカー)、Johan Strandberg(Rez、DeRez、RezDet)、 Steve Hartwell(Cライブラリ)、Dan Allen(MacsBug、エディター)。 Apple Numerics Groupも数学ライブラリを提供しました。
1986年9月24日にMPW 1.0が完成しました。1986年10月10日にシェルメモリリークが修正され、MPW 1.0.1が誕生しました。 MPW 2.0は1987年7月20日に完成し、MPW 3.0は1988年11月30日に完成しました。MPW3.1、3.2、および3.3は今後数年で登場しました。 MPW 3.4は1995年7月14日に完了し、MPW 3.5は1999年12月17日に完了しました。作業は2001年後半に停止されたMPW 3.6で行われていました。
MPWのwi明期に、Greg BrancheはApple MPW-devメーリングリストを通じてMPWを非公式にサポートしました。リストと、それをホストしたlists.apple.comサーバーは2014年1月17日にシャットダウンされる予定でしたが、この決定は後に取り消されました。
レガシー
MPWは引き続きMac OS X用の開発に使用できますが、サポートはPowerPCベースのコンピューターのCarbonアプリケーションに限定されます。他のテクノロジーに基づいてMac OS Xアプリケーションを開発するには、Xcodeまたは別のOS X互換の開発環境を使用する必要があります。 MPWには、Projectorと呼ばれるバージョン管理システムも含まれていました。これは最新のバージョン管理システムに取って代わり、Mac OS Xではサポートされなくなりました。