Archives | Tumblr | Facebook | bullet-feed.pngRSS

『なぜ、プログラミングは楽しいのか?』に対する素晴らしい答え

 『なぜ、コンピュータープログラミングは楽しいのか。なぜ、僕を含めプログラミングに携わる人々は、何度も辛い目に遭いながらも、この職種から遠ざかる事が出来ないのか・・・?』

 この問いに対する答えが下記のサイトに載っていました。ここには、プログラミングの本質的な楽しさが書かれています。

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

 この書籍の日本語訳「人月の神話」はこちらです。

 以下、抜粋した引用です。難解な部分もある英語ですが、可能な限り、僕のつたない超意訳も併せて載せます。

Why is programming fun?
 (なぜ、プログラミングは楽しいのか?)

The below is an extract from Fred Brooks' (Frederick P. Brooks, Jr.) book, The Mythical Man-Month. This is one of the best explanations of why programming is so interesting. It touches on all aspects of the mystique of programming.
 (下記は、フレッドブルックス(Frederick P. Brooks, Jr.)の本、題名「人月の神話」から抜粋したものです。これは、「なぜプログラミングがこんなにも面白いのか?」と言う問いに対する理由の中で、最も素晴らしい説明の1つです。それは、プログラミングの神秘的な面、全てに言及しています。)

The book was first published in 1974 and then republished in 1995. What Fred Brooks had to say then based on his experiences with the development of the OS/360 system is still relevant today.
 (この本は、1974年に初版が出版されて、それから1995年に再版されました。OS/360システムの開発に接したフレッドブルックスが、その当時彼の経験から言った事は、今日でもそのまま適応できます。)

First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design.
 (第一に、プログラミングには、物を作る本当の喜びがあります。子供が泥のパイ作りに喜びを得るように、大人が、物作りを楽しむように、特別な物を、自分自身の設計で作り出す事が出来ます。)

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."
 (第二に、プログラミングには、他の人にとって有益であるものを作り出す楽しみがあります。心の奥底で、私達は、自分達が作った物を他の人に使ってもらい、それが役に立つとわかって欲しいと思っています。この点でプログラミングシステムは、子どもが始めて作る「パパのオフィスの為」の粘土製鉛筆ホルダーと、基本的に同じです。)

Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate.
 (第三に、プログラミングは、可動部分を連結し、それらが微妙なサイクルで動くのを見る事、つまり、複雑なパズルのような対象を形作る魅力があります。原則によってもたらされる結果の展開を初めから組み立てられます。プログラムされたコンピュータには、ピンボールマシンやジュークボックス機構が惹き付ける魅力の全てがあります。そして、最後までやり通せます。

Fourth is the joy of always learning, which springs from the nonrepeating nature of the task. In one way or another the problem is ever new, and its solver learns something: sometimes practical, sometimes theoretical, and sometimes both.
 (第四に、プログラミングには、常に学ぶ喜びがあります。問題は常に新しいものです。そして、問題を解く人は常に何かを学びます、時には、実地で。時には、論理的に。そして、時々は両方から。)

Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (...)
 (最後に、プログラミングには、とても扱いやすく加工しやすい媒体で動かせる楽しみがあります。クリエイティブなほとんどメディアはこれほど柔軟でありません。そして、磨き、調整するのがとても簡単で、すぐに、壮大な概念構造を形作る事が出来ます。)

Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separately from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.
 (それでも、それが動き、実際に作用するという点で、プログラム構成要素(それは、詩人の言葉とは明らかに異なる)はリアルです。そして、目に見えるアウトプットを構成された概念そのものから作り出します。それは結果を印刷したり、絵を描いたり、音を出したり、機械の手を動かします。「神話と伝説の魔法」は、我々の生きている今、この時代に実現しました。人々はキーボードで的確な呪文を入力します、そして、表示スクリーンは生き生きと反応します。そして、今まで無かった、存在することも出来なかったものを見せてくれます。)

Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.
 (全ての人々が同じように持っている喜びの感情と、我々の奥深くに眠っている創造的な欲望を満足させるので、プログラミングは楽しいのです。)

 僕は、これら全ての意見に同意します。

 これを読んで、僕の中でモヤモヤしていたプログラミングに対する思いが、まるで霧が晴れたようにすっきりしました。仕事として携わり、生きる糧として使用される泥臭いアイテムの中で、これほどまでに楽しく、人を惹きつける物は他にあるでしょうか。

 この職種のキャリアパス的には、プログラマから足を洗って、ほとんどソースを見ることの無いプロジェクトマネージャーになったり、プログラム開発とあまり関係のないSEになったりする事が多々あると思います。

 僕もすっかり最近は、業務でプログラミングしなくなりましたが、たとえそうなったとしても、プログラミングと言う魅力ある作業に無理やりでも触れていきたいなぁと、この文章を読んでぼんやり考えました。

追記(2010.11.23)

 プログラミングに喜びを感じるのは男だけじゃない!と言うコメントをいくつか見ましたので、訳を一部変更しました。

修正前:「全ての男達」
修正後:「全ての人々」

このエントリーをはてなブックマークに追加

関連性が高いおすすめ記事


comments powered by Disqus