Entry

プログラミングはなぜ楽しいのか

2011年10月29日

こちらを読ませてもらって。一番共感できるところは,こちらだろうか。

Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. In this respect the programming system is not essentially different from the child's first clay pencil holder "for Daddy's office."

Why is programming fun? An extract from Fred Brooks' (Frederick P. Brooks Jr.) book, The Mythical Man-Month

プログラムを作る上で個人的なモチベーションになっているのは,それが他人を助ける/楽しませるモノであると信じているところが強いかもしれません。コンピュータに触る前からそうだったけれども,昔から「楽しむ側」より「楽しませる側」にいる方が好きだった記憶があります。おそらく,これは多くの技術者さんに共通している性質なんじゃないかと思う。

「楽しませる」といって忘れられないのが,小学校3年生くらいのときに作った自作ゲームのこと。もちろん,当時(1988年頃)はパーソナルなコンピュータなんて手に入らなかったので,厚紙で作ったボードゲームなんですけど。

ゲームはいわゆる「はさみ将棋」の亜種でした。基本のルールははさみ将棋なんですけれど,普通のはさみ将棋と異なっていたのは,はさんだ相手の駒(死体?)が盤面上で障害物に変わること。厚紙で作った駒をひっくり返すと,障害物のマークになるように作りました。駒は確か NEC の「文豪」(ワープロ専用機)かなんかで作ったと思う。どこで敵を挟むかによって,盤面の状況が変わるので(定石らしい定石がなくなる),クラスの友達にウケたのを覚えています。

あたしの場合,プログラムを作るときのモチベーションはほとんどそこにある。「楽しませる方が好き」という立場は,ゲーム開発界隈に顕著なようで,「楽しむのも楽しませるのも好き」という人はあまりいないようです。楽しんで評論家になるゲームの人と,楽しませて製作者になるゲームの人は,素性からして結構大きな隔たりがあるように思う,と。

もうひとつ。上の引用にはなかったけれども,プログラムを作る楽しみに,「魔法のような現象を理屈立てて作ることができる」ところがあります。

あたしゃ普段,画像認識や画像処理のアプリケーションやライブラリを仕事で書いているんだけれども,自分で設計して書いたにもかかわらず,実行結果が魔法のように見えることがあります。普通の画像フィルタくらいなら,あまり驚かないんですけどね。例えば,ちょっと賢い文字認識や物体認識なんかは,魔法のように見える。特に,低水準(アセンブリ)で書いた魔法的なルーチンがまともに動いたときは,本当に自分で魔法を作った気分になります。マクロで見ると魔法みたいなのに,ミクロで見ると機械的で緻密に組み上げられたオブジェクトがカッチャンカッチャンと動いて実現している。そのギャップもよかったりします。

このことは常々思っているもんだから,サイトでプログラミングネタを扱ったカテゴリは,The Wizardr's Apprentice(The Sorcerer's Apprentice(魔法使いの弟子)に引っ掛けて)にしようと思ったくらい。分かりづらいからやめたんだけど。

とゆことで,上の二つをまとめると,個人的なプログラミングの楽しみは,魔法みたいな技術で人を楽しませたり助けたりできる点だったりする。仕事を離れても,この楽しみだけはやめられません。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN