プログラムを書いていると(最近は全然書いてないのですが)、正解に行き着いた時にけっこうコロンブスの卵的発見というか、「あっ、なーんだこれでいいんだ!」といった気持ちのよい感覚に出会う時がよくあります。
うまい例ではないかもしれないのですが、ちょっと実際のプログラムを一例として挙げてみます。ちなみにプログラミング言語は、JavaScriptというものです。
a=b=150; //aとbに150を入れる
a /= 60; //aを60で割った答えをもう1回aに入れる
b %= 60; //bを60で割った余りをもう1回bに入れる
alert(Math.floor(a) +"時間" + b + "分"); //表示する
これを実際に動かすと、"2時間30分"と書かれた警告画面がポンって表示されます。
これは、
「150分を何時間何分という形で表示する」
というプログラムなのですが、この問いに普通の頭で考えると
「えーと60分引いて1時間で残り90分、さらに60分引けるので引いて2時間で残り30分だから・・・・2時間30分、なのでプログラムは150から60を引ける回数が時間で、引けなくなった時点で残った数字が残りの分数」
などと考えがちなのですが、そこでちょっとだけ考え込んで
「あ、そうか150分を60分で割った商と余りを出せば簡単じゃないか」
と思いついてその通りにプログラムを書いたら、少ない行数でうまく動くプログラムが書けたりするわけです。
まあ実際はこれより数十倍数百倍の機能を実現するために大量のプログラムを書く必要があるわけですが、そうやって何百行にもわたるプログラムを書いていても、この
「いやいや、もっと単純に書けるはず。もっとあっと驚く別のやりかたがあるはず」
という試行錯誤を繰り返し実際にその通りになったりすると
「うはーキタキタキター。俺すごい。天才!(笑)」
みたいな快感があったりするわけです。
このプログラムを書くという仕事。実は昨今の不況だとかデフレだとかコスト削減といった事由でオフショア開発という名のもと大量に中国やベトナムなどの海外に発注されています。
どうも日本のIT業界というのは、この"プログラムを書く"という仕事を下流の仕事というか、大量生産できる工場ぐらいの感覚でしか捉えていないような感じがあって、ちょっとした規模のプログラム製作が必要なプロジェクトがあるとすぐに「コスト削減としてオフショア開発を検討するように」という条件がついてきます。
私も2000年頃に、上海で現地のスタッフが楽しそうにプログラムの構造について議論したり、トライ&エラーを繰り返しながらプログラムを作り上げている姿をうらやましく思いながら眺めていた記憶があります。
最近私は日本のIT業界にとって「プログラム製造は海外へ」という当たり前の風潮に少し危機感を抱いております。
管理者とかマネージャーといった名のもとにエクセルで進捗管理を行っているエンジニアはたくさんいるのですが、その方達にどうも"プログラムを作るという行為の奥深さ"を知っている人がどんどん少なくなっているような気がします。
プログラマーという存在にリスペクトしている人に出会う事も随分と少なくなったような気もします。
果たして、"プログラム製造"という行為は安けりゃ海外で十分といったものなのでしょうか?
今年のノーベル化学賞を受賞された根岸英一氏が、激励の電話をしてきた菅首相に
「資源のない日本には、新しい技術を作り上げることのできる理系の脳こそが大事なのですよ。」
と言っていたのが非常に印象に残っています。
私は、大量のプログラムを作る事を「コストのかかるやっかいなもの」と捉えるのではなく、次世代のコンピュータ技術を確立する重要な技術要素としていま一度、プログラムを作る事の大切さに向き合ってみる必要があるのではないかなと思っているのです。
いや、150分を2時間30分!って表示させたからといってノーベル賞を獲れるとは思っていないのですが、そんな単純な試行錯誤の繰り返しと正解に行き着いた時の感動の繰り返しの先に、日本の経済を支える新しい技術の発見があるような気がしてならないのです。
『ぼくのまゆげをクリックして
今日の運勢を知るブプレ〜♪』
|