サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
1: 2004-09-06 (月) 01:58:58 ソース 2: 2004-09-06 (月) 14:50:24 ソース
Line 4: Line 4:
*** 0.重要なこと *** 0.重要なこと
--以下に書いてあることは「よいこと」ではありません。速くて小さいプログラムを作るために役立つ思想が書いてあるだけであって、それが常によいとは限りません。小さくて速いことよりも、他のことが重要なことは十分にありえます(仕事の上ではまず納期が一番重要、なんてことはあるでしょう。・・・そんなときはどんな犠牲を払っても納期が優先です。納期に間に合うと分かってから納期に遅れない範囲で以下の努力をするのはとてもすばらしいです)。それをはき違えてはいけません。+-以下に書いてあることは「よいこと」ではありません。速くて小さいプログラムを作るために役立つ思想が書いてあるだけであって、これはただの技術なのです。何が正しいのかとか、ここに書いてあることは正しいのかどうかではなくて、''開発をしているときだけこういう気分になりさえすれば''、小さくて速いプログラムが誰でも作れるようになりますよ、とそれだけのことなのです。小さくて速いことよりも、他のことが重要なことは十分にありえます(仕事の上ではまず納期が一番重要、なんてことはあるでしょう。・・・そんなときはどんな犠牲を払っても納期が優先です。納期に間に合うと分かってから納期に遅れない範囲で以下の努力をするのはとてもすばらしいです)。それをはき違えてはいけません。
-以下は平均するとまあまあ効果のある「技術」であり、例によって開発思想的な面が強いのでほぼどんなプログラミングにおいても活用可能なものです。効果の程度はまちまちですが、うまくいったときは劇的であり、たいていは空振りです。 -以下は平均するとまあまあ効果のある「技術」であり、例によって開発思想的な面が強いのでほぼどんなプログラミングにおいても活用可能なものです。効果の程度はまちまちですが、うまくいったときは劇的であり、たいていは空振りです。
-開発時間に余裕がないときは空振りのリスクは大きすぎるので、素直に既存の技術を活用するほうがいいでしょう。 -開発時間に余裕がないときは空振りのリスクは大きすぎるので、素直に既存の技術を活用するほうがいいでしょう。
Line 27: Line 27:
-性能としては似ているけど違うものができる場合もあるでしょう。その場合は既存のものとの競争状態に入ることができます。これは非常に有益で、お互いに相手の技術を参考にできるなら、結果的に非常によいアルゴリズムに到達できるでしょう。 -性能としては似ているけど違うものができる場合もあるでしょう。その場合は既存のものとの競争状態に入ることができます。これは非常に有益で、お互いに相手の技術を参考にできるなら、結果的に非常によいアルゴリズムに到達できるでしょう。
--(まだ書き途中)+*** 5.まとめ 
 +-新アルゴリズムの開発は、成功すれば劇的に速度やサイズを改良できるものです。また十分にセンスを持っていれば(=つまりプログラミングとは既存のアルゴリズムを組み合わせることだけではない、というふうに考えることができるなら)あまり既存の技術を知らないでいるほうが、既存の人たちが見過ごしていたシンプルでエレガントなアルゴリズムは発見しやすいでしょう(複雑でゴテゴテしたアルゴリズムなら、知識過多状態でも簡単に思いつける・・・しかしここではそういうアルゴリズムは期待されていない)。 
 +-無知でがむしゃらにがんばる人を「それは車輪の再発明だろ」と馬鹿にする人がいますが、それは有害で、できることなら気が済むまでやらせてあげるべきなのです。もちろん、結果的に車輪の再発明になってしまう場合はあります。もし車輪の再発明になっていることに本人が気づいていなければ、それは是非指摘してあげてください。 
 +-問題分野によっては、これ以上簡単なアルゴリズムがあるとは思えない、なんていう場合もあるかもしれませんが、しかし何事もやってみるまで分からないのです。OSはだいたいこれくらいの大きさ、速さになるはずだという一般的合意をあっさりと、しかも劇的に打ち破ったのがOSASKであって、しかもそれは既存のOSを分析して生まれたものではなく、OSはどんなサービスを提供するべきか、それはどのように提供するべきかを先入観なしに考えた結果なのです。既存の技術を知ってしまうと、どうしてもその素晴らしさに目が行ってしまい、新しいものを考えようとしなくなります。自分ではどうやっても超えられない気がしてしまいます。それは損です。行き着くところまでやってみないと何事も分かりません。 
 +-今無知でいる人で、しかもそれなりに時間があるなら、是非できるだけ少ない知識で自分の問題を解決するプログラムを考えてみるといいでしょう。もちろん、実力不足でどうしようもなくなることはあります。そんなときはその部分だけちょっと勉強しましょう。また、そのときにすごく良さそうなアルゴリズムを知ってしまうかもしれませんが、しかしとりあえずはあえて自分の方法にこだわり、テストとしてどちらがいいかを比べてみましょう。悪そうに見えて、実はよかったなんてことはよくあるのです。 
 +-自分の思いのたけをコードにぶつけ終わったら、今度は既存のアルゴリズムをじっくり理解しましょう。自分が思いつけなかった部分がきっといくつかあると思います。なぜそんな仕組みが必要なのかとかも、一度同じ問題で苦労した経験がありますから、納得しやすいでしょう。もし自分のほうがいい方法だったと思う部分があれば、それを既存のアルゴリズムに組み込んでみるといいでしょう。たいてい好ましい結果が得られます。
* こめんと欄 * こめんと欄
#comment #comment

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。