naive

形容詞

  1. ある特定のプログラムやシステムの倒錯ぶりをまだ知らないこと。正しいやり方ではなく、直感的なやり方で物事をやろうとする人(本当に優れた設計ではこの両者は一致するが、たいていの設計はしかるべき意味で‘本当に優れて’いない)。この特性は、一般的な成熟度や能力、あるいは他のどんな特定のプログラムにおける能力とも、まったく無関係である。この語の自然な反対語としてしばしば「経験豊富なユーザー」が挙げられるが、実際には「皮肉屋のユーザー」の方が近い。これは計算機利用の原始的な現状を物語る悲しい話である。

  2. ある優れているが高度な技術を活用しないアルゴリズムについて言う。たとえばbubble sort。プログラマの側のナイーブさを含意することもあるが、ナイーブなアルゴリズムの方が好まれる状況もある。なぜなら、最大限の性能を追求するよりも、コードを理解しやすく保つことの方が重要な場合があるからだ。「線形探索がナイーブなのは分かっているが、この場合リストはたいてい数項目しかないんだ」。brute forceと比較せよ。