5: 2009-11-17 (火) 12:08:34 [4] | 現: 2024-01-08 (月) 12:58:42 k-tan[5] [6] | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | * ぐいぐい01に関するメモ-09 | + | TITLE:x |
+ | * ぐいぐい01に関するメモ-09 [#l2c39a1b] | ||
-(by [[K]], 2008.11.22) | -(by [[K]], 2008.11.22) | ||
-メモのうち重要な部分をそのうちまとめてまともなページを作る | -メモのうち重要な部分をそのうちまとめてまともなページを作る | ||
Line 6: | Line 7: | ||
--ちなみにobj2bim4eを「ぐいぐい01」に移植してみたところ、12,800→7,212とほぼ半減となっています。やっぱりすごい。 | --ちなみにobj2bim4eを「ぐいぐい01」に移植してみたところ、12,800→7,212とほぼ半減となっています。やっぱりすごい。 | ||
--ちなみにgas2naskを「ぐいぐい01」に移植してみたところ、11,155→5,114と半減以上となっています。やっぱりすごい。 | --ちなみにgas2naskを「ぐいぐい01」に移植してみたところ、11,155→5,114と半減以上となっています。やっぱりすごい。 | ||
- | *** (20) 「ぐいぐい01」こそ理想のAPI | + | *** (20) 「ぐいぐい01」こそ理想のAPI [#hcf9ddc0] |
-まずは移植性というところから書こう。世間ではプログラムをきれいに書けとか、できるだけ標準関数だけを使って書けとか、ソースはオープンなほうがいいとか、まあそういうことがちょくちょく言われる。これは改良したい場合(他人に改良させたい?)と、移植したい場合の二つの理由からなると思われる。この改良したいという点に関しては、まあ基本的にごもっともなので僕から言うことはない。しかしこと移植性の確保のためということであれば、僕は言いたいことがある。 | -まずは移植性というところから書こう。世間ではプログラムをきれいに書けとか、できるだけ標準関数だけを使って書けとか、ソースはオープンなほうがいいとか、まあそういうことがちょくちょく言われる。これは改良したい場合(他人に改良させたい?)と、移植したい場合の二つの理由からなると思われる。この改良したいという点に関しては、まあ基本的にごもっともなので僕から言うことはない。しかしこと移植性の確保のためということであれば、僕は言いたいことがある。 | ||
-まず最初に言っておきたいのは、「究極の移植性とは、移植をしないで済むことである」ということだ。つまり100%のソース互換が達成されるのであれば、プログラムがどんな内容だろうと、移植性を理由に文句を言われる筋合いはない。また更に進んでバイナリ互換まで達成されているのであれば、使っているコンパイラがやたらと古い版で入手困難だったり、物凄く高いコンパイラを買ってこないとmakeできないようなものであったとしても、さらにはそもそもソースが非公開であったとしても、そんなことは全く問題にならない。 | -まず最初に言っておきたいのは、「究極の移植性とは、移植をしないで済むことである」ということだ。つまり100%のソース互換が達成されるのであれば、プログラムがどんな内容だろうと、移植性を理由に文句を言われる筋合いはない。また更に進んでバイナリ互換まで達成されているのであれば、使っているコンパイラがやたらと古い版で入手困難だったり、物凄く高いコンパイラを買ってこないとmakeできないようなものであったとしても、さらにはそもそもソースが非公開であったとしても、そんなことは全く問題にならない。 | ||
Line 19: | Line 20: | ||
-さてもし最初のバージョンのWindowsのAPIが、「ぐいぐい01」のような仕様だったらどうだろう。もしそうなら、たとえWindowsがLinuxやMonaOSくらいに激変するようなAPI仕様の大転換があったとしても、別にたいした問題にはならない。10KB程度のefg01に相当するものを入れればいいだけなのだから。・・・想像してみてほしい、もしこうであったら、Windowsの開発者はどれほど自由に次バージョンのOSを設計できるだろう。互換性の維持のためにコードが増えてメンテに戦力を取られ、バグが取れませんでした、なんてことはなくなるのだ(少なくともそういう言い訳はできない)。 | -さてもし最初のバージョンのWindowsのAPIが、「ぐいぐい01」のような仕様だったらどうだろう。もしそうなら、たとえWindowsがLinuxやMonaOSくらいに激変するようなAPI仕様の大転換があったとしても、別にたいした問題にはならない。10KB程度のefg01に相当するものを入れればいいだけなのだから。・・・想像してみてほしい、もしこうであったら、Windowsの開発者はどれほど自由に次バージョンのOSを設計できるだろう。互換性の維持のためにコードが増えてメンテに戦力を取られ、バグが取れませんでした、なんてことはなくなるのだ(少なくともそういう言い訳はできない)。 | ||
-僕がWindowsの開発者だったら、efg01を見て、きっと「ああなんてことだ、こうしておけばよかったのか」と地団太を踏むと思う。今のWindows開発者がそのように思うかどうか分からないけど、思わなかったらまだまだなんだろうなと思う(正解を見せられて理解できる人は多いけど、正解を見せられてもまだ理解できない人も世の中にはいるから)。 | -僕がWindowsの開発者だったら、efg01を見て、きっと「ああなんてことだ、こうしておけばよかったのか」と地団太を踏むと思う。今のWindows開発者がそのように思うかどうか分からないけど、思わなかったらまだまだなんだろうなと思う(正解を見せられて理解できる人は多いけど、正解を見せられてもまだ理解できない人も世の中にはいるから)。 | ||
- | *** (21) 1bitの本当の価値 | + | *** (21) 1bitの本当の価値 [#l473daba] |
-多くの人は1bitの本当の価値を忘れていると思う。特に最近はたとえば2GBのmicroSDが299円とかになっていて、1MBの値段は0.15円くらいだと思っているのだろう。これはある意味では正しい。もしそのプログラムやデータがずっとそのフラッシュメモリの中だけにあるのなら。 | -多くの人は1bitの本当の価値を忘れていると思う。特に最近はたとえば2GBのmicroSDが299円とかになっていて、1MBの値段は0.15円くらいだと思っているのだろう。これはある意味では正しい。もしそのプログラムやデータがずっとそのフラッシュメモリの中だけにあるのなら。 | ||
-でもよいプログラムであれば、公開後に多くの人がインストールすることになるだろう。そうすると、もし100人がインストールするのであれば、人類全体の総コストは100倍になる。1MBあたりの単価は実に15円にまで上昇してしまう。1万人ならさらにその100倍だ。 | -でもよいプログラムであれば、公開後に多くの人がインストールすることになるだろう。そうすると、もし100人がインストールするのであれば、人類全体の総コストは100倍になる。1MBあたりの単価は実に15円にまで上昇してしまう。1万人ならさらにその100倍だ。 | ||
Line 27: | Line 28: | ||
-でもまあ非公開で結局自分しか使わないプログラムなら、被害は1倍にしかならないのでたいしたことはない。まして、一度やればもうめったにやる必要のないような処理であれば、別に10MBでも構わない。 | -でもまあ非公開で結局自分しか使わないプログラムなら、被害は1倍にしかならないのでたいしたことはない。まして、一度やればもうめったにやる必要のないような処理であれば、別に10MBでも構わない。 | ||
- | * こめんと欄 | + | * こめんと欄 [#meff8e47] |
#comment | #comment |
(This host) = http://osask.net