MacAppに始まるオブジェクト指向アプリケーションフレームワークというもの

クラスライブラリとか、アプリケーションフレームワーク。最近だと.NETとかの元祖的なのがMacAppです。
5
後藤寿庵 @juangotoh

今気づいたが、Photoshop CCのアバウト画面にはもうMacAppのクレジット表記ないのな。PS7とかの頃にはまだあったと思うんだけど、CSの段階でなくなったのかな?

2017-03-04 16:10:25
後藤寿庵 @juangotoh

今MacAppで検索すると、Mac App Storeばかりひっかかるのだけど、MacAppというのは、Classic Mac時代のアプリケーションフレームワーク。1985年にリリースされて、Photoshopとかに使用されてた。WindowsでいうところのMFCみたいなもの

2017-03-04 16:14:16
後藤寿庵 @juangotoh

というか、MFCがMacAppの直接的な影響を受けたとWikipedia(英語版)にも書いてある。MacAppは、GUIフレームワークの先駆けだったのだ。

2017-03-04 16:15:30
後藤寿庵 @juangotoh

ただ、それなりに利用されたMFCと違って、MacAppって理想は高いがでかいし、使えねーよなーってのが初期Macの状況だった。昔のMacメモリ足りなかったし。なのでAppleも一時期完全放置状態になっちゃうんだよな。

2017-03-04 16:17:20
後藤寿庵 @juangotoh

困ったのがAdobeで、PhotoshopをMacAppで作ったのにMacが拡張されてもMacAppがさっぱりバージョンアップしない。Windowsにも移植したいし。ってんで、フレームワーク自体をいじりだす。

2017-03-04 16:19:01
後藤寿庵 @juangotoh

いつのまにか、Adobe内部で使ってるMacAppは、魔改造の果てに、もはやMacAppではなくWindows/Mac両対応の独自のフレームワークに進化してしまったらしい。でも律儀にMacAppのクレジットを表示し続けていた。

2017-03-04 16:21:33
後藤寿庵 @juangotoh

確か一時期SGI向けにUNIX版Photoshopも出してた気がするから、Mac/Win/UNIXトリプル対応してたのかもしれない

2017-03-04 16:22:48
後藤寿庵 @juangotoh

GUIアプリケーションのためのフレームワークって、要するにアプリケーションとか書類とかをクラスとして抽象的に扱って、そのサブクラスでアプリ独自の内部処理とかを行うので、オブジェクト指向である必要があって、1980年代前半だとまだそのへんC++一人勝ちじゃなかった

2017-03-04 16:25:07
後藤寿庵 @juangotoh

MacAppが作られたときの使用言語はObject Pascal。というとDelphiを思い出す人が多そうだけど。この言語自体、Pascal開発者とAppleのラリー・テスラーが協力して作ったもの。オブジェクト指向言語作りからはじめてフレームワーク作ったまさにパイオニア

2017-03-04 16:27:06
後藤寿庵 @juangotoh

まあ、MacAppリリースと同年に「プログラミング言語C++」が出版されてるし、Pascal系はわりとすぐC,C++に飲み込まれるんだよね

2017-03-04 16:29:29
後藤寿庵 @juangotoh

1970年代後半から1980年代前半にかけて、手続き型言語全盛時代で、Pascalこそ理想って雰囲気だったんだけど、あれ廃れたなあ

2017-03-04 16:30:58
後藤寿庵 @juangotoh

MacAppもC++で書き直される羽目になるんですけどね。この書き直し以降、しばらくろくにメンテナンスされず放置になるんだよな。

2017-03-04 16:33:06
後藤寿庵 @juangotoh

そもそもMacAppは、MPWというunixシェル風の開発環境とセットになってて、これは実にMacっぽくなかった。当時のMac開発者はそれ自体MacのGUIに惚れ込んでたし、GUI前提のIDEでないと使ってくれなくなる。

2017-03-04 16:36:02
後藤寿庵 @juangotoh

Think Technology社の、Lightspeed Pascalという開発環境が、すげえGUIでの高速開発ができて、最高だった。これ、シマンテックに買収されてTHINK Pascalになる。さらにTHINK C、Symantec C++となって、独自のフレームワークになる

2017-03-04 16:40:08
後藤寿庵 @juangotoh

THINK Class Library、略してTCL。これがMacで広く使われるアプリケーションフレームワークになるのだけど、これも紆余曲折あってさ

2017-03-04 16:41:25
後藤寿庵 @juangotoh

Appleが、ある時期MacとWindowsで使える共用フレームワーク作ろうとか言い出して、Symantecと組んでBedrockというのを言い出した。

2017-03-04 16:44:45
後藤寿庵 @juangotoh

なんか一時期は将来Mac,Windows NT,OS/2,Unix,Taligent共用になるとか吹いたらしいぜ、Bedrock。

2017-03-04 16:46:09
後藤寿庵 @juangotoh

大風呂敷はたためず。結局Bedrockフレームワークは、まともに商品化されることなく消えていったのだけど、その後購入したSymantec C++のMac用クラスライブラリには、深いところにBedrockという名前のクラスがいっぱい残ってて苦笑した。夢の跡って感じ。

2017-03-04 16:48:42
後藤寿庵 @juangotoh

まあ、今マルチプラットホームなフレームワークを探せば、QtとかwxWidgetsとかFLTKとかGTK+とかなんぼでも普通に使える物があるんだけど、リソースが少なかった時代はメーカーが社運をかけて失敗するみたいなのも多かったのよ。

2017-03-04 16:52:52