gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

人とコンピュータとの補完関係

ん…ぢつはがるパタにできるほどきれいに言葉がまとまっていないのですが。
とりあえず一度書いておこうかなぁ、と(つまりそれだけあちこちで「必要な文章」なんだってバックボーンを想定してくらはい)。


ある程度、コンピュータと人間の作業量は補い合う関係にあるです…が、問題は「繰り返す回数」が異なったりするです(大抵の場合、人間が1楽をするたびに、コンピュータがn苦労する、という構図になります)。
で、そこを考えると、色々と「最適値の出し方」が変わるです。
で…「比喩で例えられる」ほど正直思考が練られていないので、ストレートに実際の値を出しながら。


一つ目。例えば「コンパイラ言語」と「インタプリタ言語」の場合ですが。
純粋にヒューマンリソース基準で考えると、インタプリタ言語のほうが効率がよいです。それはつまり「いったんコンパイルする」という手間がなくなるから。
ただ、実際にはインタプリタ言語は基本的に「毎回コンパイルしながら(してから)動く」ので。全体としては「効率が悪い」状態になります。
んと…もの凄く大雑把ですが。例えば
・プログラムを書く:9
コンパイルする:1
程度の労力がかかると仮定すると。
「ヒューマンリソース基準」で考えると「労力が1割減る」のですが。
「全体リソース基準」で考えると「実行速度が1割ほど増える」状況になります(しかも起動毎)。


似たような事は実は随所に発生しまして。
昨今、口の端に登る効率は大抵「ヒューマンリソース基準」が多いのですが。で、それ自体を必ずしも否定するわけではないのですが…時として「もう少し全体リソース基準で想定した方がよい(=人間が少し苦労をしたほうがよい)」ケースが、発生する事があります。
特に「アルゴリズム/データ構造を熟知する」なんていうのは、割合にその典型ですね。


エンジニアが「たくさんのLIFE CARDを持つ事」に意義があるのであるとしたら。
「人間に負荷をかける事でシステム全体のリソースを安くする」ノウハウもまた1枚のカードだと思うのですが、どんなもんでしょうかね?