1: 2008-05-19 (月) 16:42:30 [5] | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | * ぐいぐい01に関するメモ-06 | ||
+ | -(by [[K]], 2008.05.19) | ||
+ | -メモのうち重要な部分をそのうちまとめてまともなページを作る | ||
+ | *** (17) OSASK計画の長期計画(つづき) | ||
+ | -(以下の文章は6月上旬までには「川合のぼやき」に公開予定。つまりここは下書き。) | ||
+ | ~ | ||
+ | ~ | ||
+ | -''3.考察'' | ||
+ | --まず''2.''のあちこちに印をつけておいたので、そこから話を始めようと思う。 | ||
+ | --*1の部分のOSの正当な競争は、これこそOSASK計画の基本的な目的の一つであって、だから「ぐいぐい01」はOSASK計画にとって大きな前進をもたらしたといえる。 | ||
+ | --しかし*2で指摘したように、アプリ開発者が「ぐいぐい01」用のアプリを作ることにメリットを感じすぎてしまうと、各OSのネイティブのAPIを使う人が減り、APIの改良という競争を妨げてしまうかもしれない。なんといってもAPIはOSの機能の一部であって、しかもかなり大きな要素である。その部分の競争を阻害してしまうかもしれないだから、これは危惧しなければいけない。 | ||
+ | --しかし考えようによっては、「ぐいぐい01」はAPIセットとしての最低ラインを担保しているともいえる。つまりどのOSででも、機能的・性能的に最低でもこれくらいは予備知識なしで利用できるように整備したともいえるのだ。これを超えるAPIでなければ使われなくて当然なのだ。これを超えるAPIがあるのなら、是非そのOS専用のアプリとして世に出し、うちのOS専用アプリにすればこんなすごいことができる、と示せばいいだろう。それはそのOSのアピールとして十分だろう。 | ||
+ | --そうはいっても、結局のところ既存のかなり多くのアプリが機能を損なうことなく「ぐいぐい01」用に移植できてしまうだろう。これはつまり、多くのアプリがその程度のAPIで十分に書けるということを意味している。そしてさらに嘆かわしいことに「ぐいぐい01」化することでサイズや速度が改善してしまうだろう。つまり既存のOSのAPIは「ぐいぐい01」以下であって、そんなバカらしいレベルで似たような機能を互いに非互換にし合って優劣の比較を阻害し、API改良競争を妨げてきたのだ。こういう低レベルな争いはもうやめよう、というのが「ぐいぐい01」がもたらす提案である。つまりはOSASK計画からの提案でもある。 | ||
+ | --*3の万能性の否定は、基本的にはOSASK計画の目的には合致しない考え方である。OSASK計画ではハードウェアのすべての機能を最も高い効率で利用できるようにすることを目的としている。その観点で見れば「ぐいぐい01」はわざわざ手かせ・足かせを作っているようなものだ。最大公約数的なAPIセットにとどまる以上、この方法で最高の機能や最高の性能は絶対に出せないと分かっているのだから。 | ||
+ | --これについてはこう考えてほしい。「ぐいぐい01」は100点満点を目指すのをあきらめた代わりに、まずは90点を確実に出そうというものである。というのも現状は50点や60点のレベルでの争いに終始してしまっていて、まずはこれを何とかしないとどうしようもない気がするからだ。また僕自身のプログラムレベルや設計センスも100点のAPIを作るにはまだまだ足りない。なにしろ満点というのは「もう究極でこれ以上改良の余地が全くない」ということであって、それは現時点ではとても自信を持って示せるものではないのだ。 | ||
+ | --こんな状態のくせに最高を目指そうと思ってしまったために今まで開発が遅れてしまった。・・・えせでいいやと妥協してやっと少しずつできたものの、徐々にそのえせに我慢ができなくなって今度こそもう作り直さなくてもいいような完璧なものを作ろうと思うと、またアイデアをまとめることができずに前に進めなくなる。こういうことを何度か繰り返して僕はようやく分かった。いきなり最高を目指してはいけないんだ、と。僕には経験が少なすぎる(そんな僕にも劣るような他のOS開発者は論外だとしても)。最高を目指すには少なすぎる。そんな状態からいきなり最高を目指せば、それはかえって時間がかかってしまうだろう。・・・かわのたて、こんぼう、でやっとスライムと戦えるようになった僕が、次はお金を貯めて最高のロトのつるぎを買おうと思うようなものだ。これは進歩が遅すぎる。武器や防具を少しずつ良いものに変えていって、戦う相手も徐々にステップアップしていくほうが、結局は早くロトのつるぎを買えるのだ。なんだか途中の武器や防具を買うためのコストが無駄になる分だけ損に思えるけど、そうではないのだ。いそがば回れとはこういうことを言うのだろう。 | ||
+ | --そもそも「最高まであともう少し」ということろまで世の中のソフトウェア技術が成熟していると僕は誤解していたようにも思う。だから僕はそれに追いついてさらにもう少しがんばれば最高になれるんじゃないかと思っていた。だからこそ次はロトのつるぎだと思ってしまったのだ。しかしここまでいろいろやってきて思ったのは、全然そうではないということだ。ロトのつるぎはまだまだ先だ。・・・そうであるならば、僕がロトのつるぎを得るまで何もリリースできずに悶々としていたら、そしてそのまま僕が引退して開発者として使い物にならなくなったら、その後に残された後世の人たちはどうすればいいだろう。そう、また僕と同じスタート地点からになってしまう。それじゃあダメなのだ。僕は登頂者だ。生涯で頂上までいける確率が非常に高いとはいえない以上、二合目、三合目、四合目と、要点で成果を分かりやすく示してチェックポイントを残していくべきだったのだ。つまりここは絶対に頂上ではないと分かっていても、あえて示すべきものがあるのだ。それが結果的にはOSASK計画の目的の達成を早めることにつながるのだ。だから「ぐいぐい01」は一見OSASK計画の目的からの後退に見えるけれども、実はより現実に即した中間解で、必要なものなのである。 | ||
+ | --そして世のOSのレベルが上がってくれば、最大公約数もまた大きくとれるようになるだろう。そうすれば機能的なカバー範囲も性能も向上した「ぐいぐい02」(?)を設計することができるようになるだろう。そしてその繰り返しも限界が近づいてきてやがて終わりが見えてきたときに、ついに初めて究極でOSASK固有のAPIを設計して、既存のアプリをこのAPI向けに書き直して性能を上げ、他のOSのアプリをエミュレータによって受け入れるべきなのだ。おそらくこれは気の長い話だが、しかしそれでもこれこそが最短である。 | ||
+ | --OSASK計画で僕が当初示した、まず互換性問題をエミュレーションで解決した後に性能競争・固有機能競争を始めるのは、手間が多いわりに前進が遅い。OSASKの高性能アプリを使って慣れてしまうと、そもそもエミュレーションしてまで利用したいと思えるようなアプリが少ないことに気づく(サイズが大きい、遅い=性能が悪い)。それなら利用したいと思うものだけを移植するほうが現状では手っ取り早くも思えるし性能も上がる。OSASK計画が目指すところの最終的なゴールに早く到達するには、既存のすべてのソフトウェアを利用できるようにするための努力は後回しにすべきで、とりあえず過渡期の処置として「ぐいぐい01」みたいなことをしていけばよかったのだ。こういう共有基盤があればとりあえずそこへ移植することで当面は満足できるからだ。・・・僕は幸いにエミュレータ周りを後回しに開発することでこのことに気づくことができた。 | ||
+ | --こうしてみると、OSASK計画の初期の頃、エミュレータを作っていくなんて現実的ではないといっていた人たちは、論法は正しくなかったかもしれないけど、結論は正しかったことになる。まあ今だって最終的に作ることに変わりはないのだけれども、でもとにかく優先順位的にはもっと後ろで会えるべきだったことに違いはなく、だからエミュレータに批判的だった人はその意味で正しかったともいえると思う。・・・一方でエミュレータこそ早く作れと言ってきた人たちもいたけど、その人たちの意見をとりあえず保留にして優先順位を下げてきたいままでの方針は(僕の目的にとっては)正しかったように思う。僕は究極の高性能OSがほしいのであって、ろくでもないアプリが全部使えるようになったところでうれしくもなんともないのだ。究極のOSを得るために互換性問題をエミュレータで解決して競争を激しくしようと思っていたのであって、つまりエミュレータは手段であった(だって仮にOSASK専用アプリのほうがすべての面において既存アプリを上回っていたとしたら、わざわざエミュレーションさせてまでそれらを使いたいなんて思うだろうか?)。 | ||
+ | --僕は確か工夫すればエミュレータは遅くはないとはいったし、もしかしたら最適化で本家よりも早くなるかもしれないとも言ったが、改善できるかもしれないのは実行速度だけであり、サイズについてはエミュレータはほぼ無力である(それに実行速度にしたって、OSASK用に移植されたものを超えることは絶対にできない・・・追いつくことなら万に一つくらいならありえるのかもしれないが)。しかしサイズが小さくなればHDDやFDやメモリカードなどの容量を節約することができる。バックアップもしやすくなるだろう。またメインメモリも減らすことができ、キャッシュヒットも増えて、ひいては省電力化に寄与できるのだ。そうであれば、エミュレータを作ることよりも、エミュレーションしてまで残したいアプリをいくつか選んで「ぐいぐい01」仕様にしておくことのほうがより生産的で効果があるだろう。それでもそれでカバーできないものはもちろん残ってしまうだろうから、それらについてはやむなくエミュレーターでカバーしよう。とこういうことである。 | ||
+ | -''4.現時点におけるOSASK計画の長期的計画(=優先順位リスト)'' | ||
+ | |||
+ | |||
+ | * こめんと欄 | ||
+ | #comment |
(This host) = http://osask.net