皆さんは今流行のLinuxはご存知でしょうか?
Linuxの流行の要因には、無料で手に入るということや、高い性能が挙げられますが、この高い性能はソースコードが公開されていて、世界中の開発者が切磋琢磨して日夜開発が行われているということから実現されている面もあります。
そのため、開発にかかわる労力が分散されたり、多数のユーザーからバグ報告などのフィードバックが得られるため、開発スピードが速くなるといった利点があります。
これをMSXで実現したらどのようなことになるのでしょうか?
さて、皆さんは、MSX-BASICを勉強するとき、どうやって勉強してきたのでしょうか?
入門書を見たり、自分で1から組んでいく中で勉強するということもあると思いますが、他人のプログラムを見たり、ゲームプログラムであれば、無敵化などの改造をしたりして覚えていくことも多いのではないでしょうか?
これは、MSX-BASICがインタープリタ形式であり、プログラムがソースコードのまま実行されていることから実現していることですが、この場合、公開したプログラムはソースコードを公開していることになります。これもオープンソースなソフトウェアといえます。
では、MSX-BASIC上で動くマシン語のプログラムやMSX-DOSのプログラムはどうでしょうか?
この場合、実行ファイルはコンパイラ/アセンブラによって既にマシン語に翻訳されたものであり、ソースコードではありません。
では、ここでソースファイルも公開した場合はどうでしょうか?
この場合は、オープンソースなソフトウェアになります。
MSXでBASIC以外のソフトウェアを公開する場合、ソースコードをいっしょに公開することで、オープンソースなソフトウェアになります。
では、オープンソースのメリットはどこにあるのでしょうか?
まず、プログラムの作者本人にとっては、製作したプログラムを見てもらうことで、他人がプログラムを直接引用して、修正すべき場所を報告してもらうことができるので、プログラムに潜むバグを報告してもらいやすくなり、バグの発見が早くなります。
プログラムの学習者や画像ローダーなどあるプログラムやデータに関連するプログラムの開発者にとってはどうでしょうか?
プログラムの学習者はソースコードを見ることで、使えると思った部分やテクニックを自分のプログラムに取りこむと共に、その過程でプログラムを学ぶことができます。
プログラムやデータに関連するプログラムの開発者にとってもプログラム中でデータを生成する手順や展開する手順をソースコードを見ることで知ることができるので、プログラムやデータに関連するプログラムを組むことがしやすくなります。
ゲームの高度化やコンピュータの取り扱うデータの高度化により、MSXにもより高い処理能力が要求されるようになってきました。しかし、MSXは残念ながら既に市場からメーカーが撤退したので高速なCPUなど、これ以上のハードの能力向上が望めない状態になってきました。
その中で、高い処理能力を実現するためにはハードの能力を十二分に生かすソフトウェアが必要になってきます。そうなってくると、今まで主流だったMSX-BASICはインタープリタ方式ということもあり、MSXの能力を十分に生かすには力不足になってきます。
そこで、アセンブラやC言語、H-FORTHなど、マシン語プログラムを直接生成し、実行時はマシン語のプログラムが直接走るコンパイラ方式の言語処理系の利用が不可欠になってきます。
しかし、今まではソースコードが公開されないソフトが一般的だったこともあり、プログラムを学ぶにあたって「生きた」プログラムを見て学ぶことができなかったこともありこれらの言語処理系を活用できる人はごく限られてきました。
(実際には入手の問題もありますが、これに関しては、「ぽぴぷっ!」第3号で私が執筆した「Let's use free software!」第4回をご覧になってください。)
更に追い討ちをかけるように、市販ソフトが出なくなり、商用誌も1995年のMSX・FAN誌の休刊でなくなったことから、MSXユーザーが減少していったことで、パワーのあるMSXユーザーも減っていきました。
パワーのあるプログラマーがより求められていくのに対してユーザー数は減っていく一方、となると、今のユーザーが力をつけるしかありません。
また、商業ベースにMSXが乗らなくなったことで、プログラムを学ぶのに必要な書籍も入手が難しくなっているのが現状です。
そこで、プログラムを学ぶ教材として、また高度化していく技術サンプルとしてソフトウェアのオープンソース化が現在のMSXでは必要だと私は考えます。
佐々木 俊介さんによるフリーの考察
フリーについての考察や良く使われるライセンスに関する説明、自由とMSXとのかかわりといったことについて説明されています。
MSX Free化プロジェクト
MSXのフリー化やフリーなMSX互換環境の構築についての議論や活動を行う場です。