こんにちは、川合です。 どうしてなのかはよくわかりませんが、最近ゲーム機のエミュレータ の移植がよく行なわれているので、それについて僕の考えを書きます。 まず、これらのエミュレータが仮に完成したとしても、OSASKの簡単 おすすめパッケージに含まれることはまずありません。追加パッケージ に含まれることは高い確率でありえます。 僕がおすすめパッケージへのバンドルを嫌がる理由はいくつかありま す。 1.移植である 2.いっしょにバンドルできるアプリ(ROMデータ)がない 3.教育上配慮 それぞれについて以下で説明します。 1.移植である これは僕の持論ですが、たいていの移植ものはあまりよくないプログ ラムになりがちです。それは移植元のプログラムが、メモリやマシンパ ワーがふんだんに使えることを前提にした「悪い」プログラムだからで す。ちなみにこの件での最悪の例は、僕がリリースしているosaskgoで す。あれは作り直せば、かなり小さくなると思っています(もちろん同 じレベルの最適化をしても、です)。 なお移植であってもすばらしいプログラムはあります。Wabaはよい例 だと思っています。もともと移植元のWabaは限られたリソースを活用す るべく、精練されているものと推測しておりまして、それを移植するの は、まさにOSASK的なソフトウェアが増えることになるので歓迎です。 今回のエミュレータの場合、提供される機能(エミュレーション)は (エミュレータOSとしても)きわめて価値の高いものですが、OSASKに とってエミュレータは手段であって目的ではないのです。目的は、小さ くて速いソフトウェアを充実させることなのです。手段のために目的を 犠牲にするのは本末転倒なので、でかいプログラムのただの移植につい ては、僕の推奨は弱いものにならざるを得ません。 機能を先に揃えるか、性能を先に揃えるかということになれば、世間 では機能優先ですが、それをあえて性能優先にしたのが今のOSASKです (つまりほしい機能があっても性能が十分でなければあえて排除する) 。もし僕が機能優先路線であれば僕は間違いなくLinuxから出発して、 徐々に改造しながらOSASKをつくる道を選んでいたのでしょう。 2.いっしょにバンドルできるアプリ(ROMデータ)がない どんなエミュレータも、引き継ぐべき資産があってこそ役に立ちます 。エミュレータだけでは何もできません(もちろんWabaのように、バン ドルアプリは少なくても、こうやってアプリを開発できますよ、という ドキュメントが充実している、なんていうのでも可です)。バンドルア プリはない、入手するための情報もない、そして開発するための情報も ない、ということであれば、これは多くの人にとってディスクの肥やし にしかなりません。 3.教育上配慮 OSASKが小さくて速いアプリをたくさん揃えられてきた背景には、単 なる移植をする例が皆無で、みんな再開発とでもいえるような方法で移 植してきたということがあります。例えば僕がteditcを作るときは、 Windowsのメモ帳を参考にしましたが、それはソースを入手して組み込 むという方法ではなくて、同じような動作をするアプリをゼロから組み 上げただけのことです。こうすれば無駄を受継ぐことはなく、よいプロ グラムが書けます。 これを促進するために、ANSI-Cの標準ライブラリすら利用できなくし ていたくらいなのです。安易な移植を避けるためです。ほとんどの場合 で、世間で流通しているソースを持ってきて移植するよりも、何も知ら ない初心者がゼロから作り上げるほうが、コンパクトで速くなるという のが僕の経験則です(もちろんWabaのような尊敬すべき例外はあります )。 このようにしてOSASKは一種独特の雰囲気を有しており、このおかげ で安易な移植を妨げてきました。唯一の例外はosaskgoだけで、まあこ れが無いとOSASK上でのアプリ開発ができないので、今は仕方なく入れ ています(追加パッケージに)。 例外がこれ以上増えるのは危険だと思っています。大きくても許され るという雰囲気が生まれかねません。今後も大きかったり遅かったりす れば、推奨は与えられないと思ってください。もちろん僕からの推奨が なくても、それはバンドルされないだけのことで、多くからダウンロー ドされて、愛用されることは十分にありえます。機能優先で揃えたディ ストリビューションが、僕のディストリビューションに対抗して現われ て、僕のよりも人気を博するかもしれません。それはそれでよしです。 現在は、OSASKプログラマの多くが自分でプログラムを作り、自分で 作ったプログラムの小ささに感動して、それでもっと小さくしたいとま で思うようになる、ということがたびたび起きています。OSASKのバン ドルアプリが小さいこともあり、大きいことはとても恥ずかしいと思う 事もあるでしょう。こんな風潮は、WindowsやLinuxではまずありません 。 この風潮はプログラマ養成のために非常にプラスなので、今後も維持 し続けたいと思っています。 それでは。 -- 川合 秀実(KAWAI Hidemi) OSASK計画代表 / システム設計開発担当 E-mail:kawai !Atmark! imasy.org Homepage http://www.imasy.org/~kawai/