ようこそゲストさん

したっぱプログラマーの日記(The diary of a minor programmer)

2006/06/06(火) プログラミングスタイルについて思ったこと

はてなCTOであるnaoyaさんの僕やはてながPerlを選ぶ理由という記事を読んだ。

僕のプログラミングスタイルといえば、
コンパイル、エラー、修正、コンパイル、実行時エラー、修正。
の繰り返し…。おぅぅ。
それでも、最近は、そんな作り方は、良くないだろうということで、ちゃんと設計してから、コードを書き始めるようにし始めたけれども。

いままで、そんなプログラミングスタイルに引け目を感じていたけれども、そんなことに引け目を感じる必要性はないんだ!人それぞれ、個々にあったプログラミングスタイルがあるんだ!っと思えるようになりました。

特に、ポールグラハム氏の
「デバッグとは書き間違いや見逃しを捕まえる最終段階の工程だと教わったけれど、実際に私がやっていたのは、プログラミングそのものがデバッグという具合だった。」
という言葉が、希望の光に感じられました。

そんなんも、ありなんかー!っと。
僕も、割と、そんなん感じでコーディングすることが多いので、救われた気持ちになりました。

1: mynz 2006年06月06日(火) 午後3時49分

最近、Railsによって動的言語上で作業を行っているけど、長らく静的慣れ親しんで
いるとすごい苦手。っていうか何でもトリッキィに思えて、頭の体操になりそう。動
的を軽々と扱っている奴らはニュータイプ。

まぁ、でも動的言語の場合はあまりコーディング前の設計を重視しなくても、変化に
柔軟にタイ尾言う出来るのは理解できる。

しかし、件の記事で動的言語Love!は伝わるけど、何故Perlなのかはよく分からん。

静的言語でコーディングすると時にちょっと心がけているのは、あまり無闇にビルドを
繰り返さないこと。
エディット->ビルドの手間なんてほとんど瞬間に出来るから、下手すれば数行の編集
毎にビルドを走らせてシンタックスチェッカ代わりに活用する癖が付いてしまったけ
ど、その気持ちをあえて抑えて、ビルドの頻度を下げると作業がはかどる。
理屈はよく分からないけど、多分、ホンノ一瞬でもエディタから目が反れて、コンパ
イルログなどを読んでしまうと、断続的に集中力が途切れてしまう為だと推測。
慣れ親しんだ言語なら“ロジックの思考”と“文法の正当性判定”は分けて作業でき
る。“プログラミング”という単一作業の中にも集中とメリハリがあると思えてきた。

2: わけん 2006年06月06日(火) 午後11時49分

>件の記事で動的言語Love!は伝わるけど、何故Perlなのかはよく分からん。

確かに、動的言語の中で、なぜPerlなのかは文章からわからんですね。
周囲をとりまく環境の問題ですかねぇ?
僕も、今から、動的言語を覚えようと思ったら、情報と、実行環境と、仕事に恵まれてそう、という理由でPerlを勉強したいなと思いますし。

>静的言語でコーディングすると時にちょっと心がけているのは、あまり無闇にビルドを
繰り返さないこと。

これ、よくわかります。
僕も心がけてますが、調子に乗って、長いことビルドせずに、書き続けていると、いざビルドしたときに、エラーがわんさと出て困ったり…。
コンパイルエラーなら、全然困らないのですが、実行時エラーだと、エラーを追うのが大変で、結局、コードを、少しづつ元に戻すことによって、エラー部位を特定したりしてします。

最近のだいたいの目安というか目標は、クラスの宣言のみを書いて、1ビルド。そのクラスを使用する部分を書いて1ビルド。(メンバ関数のリンクエラーは無視。)
そのクラスのメンバ関数の中身を、数個書く毎に1ビルド。
その後、設計に問題があることが発覚し、修正するたびに1ビルド。
といった感じです。

3: mynz 2006年06月06日(火) 深夜4時07分

> 僕も、今から、動的言語を覚えようと思ったら、情報と、実行環境と、仕事に恵まれてそう、という理由でPerlを勉強したいなと思いますし。

わけんはPerlを経験したことある?PythonとRubyがこれだけ台頭してくると今時Perlはねぇだろ、っていうような感じだけどなぁ。

振り返れば、自分がPerlを使用していたのはもう十年ほど前の話、CGIがすごく流行っていて、それと同一にPerlが語られていた時代。初めてPerlを学習したときはすごく感動したのを覚えている。なんというか、その大雑把さと怠け者の哲学に。

でも10年経てば大きく変わった。自分にとっても、周りのコンピュータ技術世界にとっても。10年後の今の世界にPerlの居場所を見つけ出すのは難しいよ。それは横着に言えば、亜流であるPythonやRubyがPerl 9.87あたりの世界を体現しているから。いわば、Perlそのモノが現代動的言語のプロトタイプだったんじゃないかと思えるほど。

だから、XXXのエキスパートが中規模以上の作業にもPerlを愛用しているって聞くたびにデフォルトでクエスチョンが付く。その理由を聞きたいのだけど、やっぱり答えは、「僕はPerlを愛しているから」なのかなぁ。まぁ、技術にロマンチックを持ち出すのは嫌いじゃないけど。それともプラクティカルな部分はそこまで動的ではないのかと。

4: わけん 2006年06月07日(水) 午前6時20分

PerlとRuby、どちらも、少しだけかじりましたが、どちらがいいかっというのを語れるほどではないっす。
Rubyの方が、括弧が少ない?ぐらいです。
Pythonにいたっては、Hello Worldすら、書いたことないっす。

話を聞いていると、やっぱRubyを勉強しようかなぁっと思い始めました。自分の中の愛国心も満たされるし。

>「僕はPerlを愛しているから」
これを読んで、最近読んだ「実録、天才プログラマー」のなかで、ゲァリー・キルドールさんが
「宗教的な体験としてプログラミングを実践している人たちもたくさんいると思いますよ。」
っと言っていたのを、思い出しました。
Perlを使う理由は、信仰心?
ということで、僕はRuby教に入門しようかと思います。

5: mynz 2006年06月08日(木) 午後1時09分

えぇ、わけんはhaskellあたりを学習して後で教えてくれるとありがたいんだけどな。

ポールグラハムも前に行けって言っているやん。

6: わけん 2006年06月08日(木) 午後9時44分

Haskellよく知らんのですが、先へ行ってることになるんすか?
ちょ、ちょっと勉強してみようかな。ブルーオーシャンだし。


名前:  非公開コメント   

  • TB-URL  http://wkpn.net/blog/0133/tb/