5: 2009-11-17 (火) 12:08:34 |
現: 2024-01-08 (月) 12:58:42 k-tan |
- | * ぐいぐい01に関するメモ-09 | + | TITLE:x |
| + | * ぐいぐい01に関するメモ-09 [#l2c39a1b] |
| -(by [[K]], 2008.11.22) | | -(by [[K]], 2008.11.22) |
| -メモのうち重要な部分をそのうちまとめてまともなページを作る | | -メモのうち重要な部分をそのうちまとめてまともなページを作る |
| --ちなみに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できないようなものであったとしても、さらにはそもそもソースが非公開であったとしても、そんなことは全く問題にならない。 |
| -さてもし最初のバージョンの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倍だ。 |
| -でもまあ非公開で結局自分しか使わないプログラムなら、被害は1倍にしかならないのでたいしたことはない。まして、一度やればもうめったにやる必要のないような処理であれば、別に10MBでも構わない。 | | -でもまあ非公開で結局自分しか使わないプログラムなら、被害は1倍にしかならないのでたいしたことはない。まして、一度やればもうめったにやる必要のないような処理であれば、別に10MBでも構わない。 |
| | | |
- | * こめんと欄 | + | * こめんと欄 [#meff8e47] |
| #comment | | #comment |