2009年06月28日

tabi0199 結城浩「プログラマの数学」

語られ方に敏感であること

プログラミング/プログラマという言葉について考えることが多い。

一般的に、プログラミング(Programming)という言葉は「人間の意図した処理を行うようにコンピュータに指示を与える行為」(Wikipedia)と考えられており、「プログラミングをする人をプログラマ」(Wikipedia)と思われている。そして「ほとんどのプログラミングは、プログラミング言語を用いてソースコードを記述することで行われる。これをコーディング」(Wikipedia)という前提があるだろう。

私はこの「語られ方」に違和感をもっている。なぜPro(前もって)-Gram(書く)がComputer Programと捉えられてしまったのか?という問いと、なぜComputer Programという行為がCodingと捉えられてしまったのか?という問いを保っているからである。

ここでは後者に視点をあててみたいと思う。以下はアジェンダを設定するだけなので、問いに答えは見出されていない。

本書を振り返ってみると、「人間は何が苦手か」が浮き彫りになります。そして、その「苦手」なところを克服するためにさまざまな知恵が生まれたのです。

人間は、大きな数を扱うのが苦手です。ですから、数の表記法がいろいろ工夫されました。(中略)人間は、複雑な判断を間違えずに行なうのが苦手です。ですから、論理が作られました。論理式の形で推論をしたり、カルノー図で複雑な論理を解きほぐしたりします。人間は、たくさんのものを管理することが苦手です。ですから、グループ分けをします。(中略)人間は、無限を扱うことが苦手です。

・・・このように、さまざまな知恵と工夫をこらして、人間は問題に立ち向かいます。なんとか問題の規模を縮小し、複雑さを軽減し、「あとは機械的に繰り返せば解ける」という状態に持ち込もうとします。その状態に持ち込めさえすれば、強力な次の走者-コンピューター -にバトンを渡すことができるからです。P238
結城浩「プログラマの数学」(ソフトバンク 2005)


先の言葉に対応させるなら「あとは機械的に繰り返せば解ける」ような問題を定義するのが"プログラム"することであり、それを記述することが"コーディング"であろう。

さて「なぜComputer Programという行為がCodingと捉えられてしまったのか?」という問いに戻ってみよう。この問いに対峙するためには「機械」「繰り返す」「解く」の3点に光をあてる必要がありそうだ。

■参考リンク
結城浩にインタビュー『プログラマの数学』



■tabi後記
何かをしないことで、何かをすること以上に何かを伝えることができる。勘違いを自己産出してあげるようなしつらえを。
posted by アントレ at 17:15| Comment(0) | tabi☆☆ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。