ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

開発マシンは、最速がいいという場合、ハードメーカーの戦略にも注意しないと。。

2007-04-15 23:51:25 | Weblog

 前に「プログラマの権利宣言」だって!っていう話をかきましたけど、その元ねたとなっている、
プログラマの権利宣言
http://www.aoky.net/articles/jeff_atwood/the_programmers_bill_of_rights.htm

には、こんな言葉がある(以下斜体は上記サイトより引用)


すべてのプログラマは高性能なPCを持つべきである
開発者は仕事を成し遂げるためにたくさんのソフトウェアを走らせる必要がある。開発環境、データベースエンジン、Webサーバ、バーチャルマシン、などなど。これらのソフトウェアすべてを動かすには、メモリをたくさん積んだ速いPCが必要になる。開発者のPCが速いほど、彼らのデバッグ&コンパイルサイクルは早くなる。現時点における性能帯の極端にあるものに法外な金を払うのはばかげているが、しかしいつでも必ず上限に近いものを買うようにすることだ。開発者には しこたまメモリを積んだ高速なPCを支給すること。プログレスバーを眺めて過ごす時間は無駄な時間でしかない。


 これは、必ずしもそうとはいえず、真に受けると、取り返しのない大失敗を招くことがあると思うので、ちょっとそのことについて書いてきます。
 それと、そのことから考えると、なぜ、最速マシンを使わないといけない羽目になるかというのがわかるので、それについても。。




■コンパイラが特に遅いのでなければ、開発マシンは、実行マシンに合わせたほうがいい

 最速マシンでやってしまうと、いきなりシステムテストで、実行環境でテストしたら、あらまあ、とんでもなく遅かった(>_<!)っていうことになったりする。

 逆に開発マシンがおそいと、これはウィリアムのいたずらがあった実話なんだけど、DBを使った、お昼に流したいバッチ処理に、どーチューニングしても1時間かかり、あちゃー、どーしよー(>_<!)と思っていたら(お昼なので1時間かかるとヤバイのです)、現地でやったら10分で終わった。。うーん、徹夜でチューニングしなくてもよかったみたい(-_-)なんていう、むだなチューニングをする可能性もある。

 なので、実際のターゲットマシンでどれくらいの速さで動くかというのをできるだけ早めに知って、そのチューニングがすぐにできるほうがいい。もし、システムテストの段階で、「おそい!」と気がついても、どーにもなんない。。
 作り直すしか手がない、けど時間もない!ということもありえる。

 とすると、開発マシンでPGの段階で、もうすでに実際のターゲットマシンをつかって開発したほうがいいってことになる(PGでバイナリが出来た後、すぐにテストできるので)




■でも、コンパイルが遅かったら、そうではない

 しかし、実施環境にするとコンパイラがすごく遅くなるとか、そもそも、ターゲットマシンでは開発、コンパイルできないって言う場合もある。こういうときは、最速マシンでコンパイルしたほうが効率は良くなる。ただし、その場合でも、できるだけ早い段階で実施環境に近い形でテストすべきである。ほんと、あとから、「おそい!」っていわれても、もう、どーしょーもないっていうことになるのだ。。

 だから、はやくからターゲットマシンを取得し、確認しておくべきである。




■って、考えると、マイクロソフトは最速マシンで開発することになるね!

 っていうことで、「開発マシンはターゲットマシンに合わせる」ってなると、
 仮にマイクロソフトについて考えてみると(って、ウィリアムのいたずらは関係ないけど、まあ、仮に考えてみると)。。。
 現在一番売れているマシンで開発なんかしたら、従来のマシンの性能で、十分なOSを開発してしまう。。。これはこまる。

 なぜなら、今のマシンで新しいOSも十分動いてしまったら、「じゃあ、今までのマシンで動かして、べつに新しいマシンに買い換える必要ないや!」となってしまい、新しいハードが売れなくなる。。

 マイクロソフトのOSは、最新の機種でちょーどよくて、現在の機種では遅くないと、ハードを買い換えてもらえないので、ハードメーカーは新しいOSをバンドルして売れなくなる。

 ということで、マイクロソフトの開発者は、きっと最新鋭のマシンで開発することになるだろう。。。と予測できる。




■ってことは、新規購入なら、最新マシンで開発したほうがいいってこと。。

 ってことは、マイクロソフトに限らず、業務用でも、リリース時にあたらしくPCを買い換えるなら、それにあったマシンで開発する。。といっても、未知のマシンで開発するわけにはいかないので、結局、現状の最速マシンで開発することになる。

 一方、新規購入しないのであれば、ターゲットマシン(実運用で動かすマシン)でコンパイルができるなら、ターゲットマシンで開発、コンパイルできないとか、とっても遅い場合、最新のマシンでコンパイルするけど、テストはシステムテストをまたずに早い段階から、ターゲットマシンで確認したほうがいい。。

 ってことになるだろう。



この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Hello World程度のデータベー... | トップ | 生物の構造と、要求から、プ... »
最新の画像もっと見る

Weblog」カテゴリの最新記事