NULL::something

Login via flickr, はてな, TypeKey.

2006-01-20

ソフトウェア

考えたことのメモ書き。

ソフトウェアを作る人、特にプログラムを書く人にはたぶん2種類の人間がいて、一方は「入力と出力が仕様どおりに動けばいい」とだけ考え、もう一方はさらに「美しくあれ」と考え、場合によっては仕様さえ変えようと考える、気がする。あるいは人間の分類ではないかもしれない。ただの仕事でやっている (ただの仕事って謎な表現だけれど) 義務的でつまらないプログラムと、理想を持ってよりよい実装を考えるプログラムはそれぞれ違うだろうから、プログラムが2種類なのかもしれない。

ソフトウェアでは理想をある程度実現できる。そこで必要な道具は自分自身の思考とコンピュータだけでいい。「ある程度」と書いたのは、そのままの意味だけど、完全には実現できないということ。その必要な道具のうち、コンピュータ自体はハードウェアであり現実であるから、理想的にプログラムを書こうとして壮絶に富豪的なプログラミングをしても、まともに動いてはくれない。動かなくていいなら自分自身の思考だけでいい。でも、そういうのは現実逃避と云うやつで、非生産的なわけだ。現実でできるだけ理想なものを作るために、プログラムを考える。理想が現実になるから面白い。理想の現実のバランスを考えるのは難しい。

即物的にただプログラムを書ける人をとても良いとは思えない。でも、実際はそういう人のほうが役にはたつんだろうな、とも思う。コードの美しさなんて気にしない人のほうが、とりあえずプログラムを仕上げるのは早いだろう。仕上げるのが早いのはいいことだ。動作が正しければ問題ない。仕事として何かを作るなら、美しさなんて忘れたほうがいい。自分のポリシーなんてなくていい。人の役に立つことをポリシーにすればいい。

でも、そういうポリシー無しでただコードを書く人間の意思ってどこにあるんだろう。そういう人間は何かしら新しいものを作り出せるんだろうか。いや別に作り出せるとかではないんだけど、上手く書けない。

なんか面倒くさいし、どうせどう書いたって同じだから、もっとハッキリいうと、ただコードを書けるだけの人間が嫌いなんだ。演算子の両脇にスペースを入れるかとか、インデントにタブを使うかスペースをつかうかとか、そういうことを考えないやつが嫌いだ。そのプログラム自体じゃなくて、プログラムを通して見える人間が嫌いなわけ。ある小説があって、一行すごくアレな文があって、それで作者の人格疑っちゃうぐらいね。ちなみにその小説 (ライトノベル) は序章だけ読んでやめた。割と面白い作家だったから残念。関係ない。

仕事って実際にはすごく面白い仕事もあるんだろうけどさ、そんなの少数の例外だろうな、って思う。いや本当に例外かどうかはわからない。だって俺は別にソフトウェア・プログラミング畑 (謎) の住人じゃないから。

もともとこれは「Java ができる人ではなく Ruby ができる人を採用する。Ruby ができる人は理想と現実をよく考えている人が多い。Java で即物的なものを作る人より、そういう人を採用したい」みたいな記事を読んで、そのときからずっと考えていたことを文章化してみようと思って書き始めた。で、すごくバラバラに考えていたから、いつその記事を読んだのか覚えてない。んで、その記事の URL もわからなくなってしまった。誰かのブックマーク経由だった気がするんだけど、既に流れてしまったらしく見つけられなかった。自分でブックマークしなおさなかったのが悪いんだけど、どうも気になる。

Comments (4)

哀's image
哀 says:
> 序章だけ読んでやめた割と面白い作家のすごくアレな文   興味があるな。
2006-01-20T08:32:34+09:00
cho45(砂糖)'s image
cho45(砂糖) says:
もう手元にないので正確には書けない罠。 「今日はまだ五人しか殺してないのに」みたいな一文だったかな。ここに行き着くまでにも感じてた軽薄さが爆発して読む気が萎えました。
2006-01-20T12:32:40+09:00
あるば's image
あるば says:
ちょっと脱線するけど The Real Programmer Stories http://www.genpaku.org/realprogrammerj.html >本物のプログラマは、GOTO を恐れずに使う。 >本物のプログラマは、5ページにわたる長い DO ループを混乱せずに書ける。 >本物のプログラマは 算術 IF ステートメントを好む -- こうするとコードがもっと面白くなる。 >本物のプログラマは自己拡張コードを書く。とりわけ、タイトなループの途中で 20 ナノセカンドを節約できる場合には。 >本物のプログラマにコメントは不要である -- コードは一目瞭然なのだ。 FORTRAN では IF 文や REPEAT...UNTIL、や CASE 文が構造化されていないので、本物のプログラマはこれらを使わないことを気に病む必要はない。そのうえ、これらの文は GOTO 指定で必要に応じて代替可能である。   ※上から1/5くらい   ここまで来るとソースの読みやすさなんて関係なさそうだね こんな人なんていないけど
2006-01-21T15:31:02+09:00
cho45(砂糖)'s image
cho45(砂糖) says:
いや本物のプログラマは機械語なりアセンブリなりを直接書きます。パフォーマンスは最高だ。本物ならそれぐらいできて当然。   ネタはネタですから。
2006-01-21T15:44:28+09:00

Trackback URI: http://lowreal.net/logs/2006/01/20/1.trackback

NULL

RSS feed meter for http://lowreal.net/logs/latest

Alternates

  1. RSS 1.0
  2. Atom 1.0

Generated with Taglibro

この日記は Taglibro と呼ばれる XML ベースの XSLT をテンプレートとして使ったシステムを使っています。現在の Taglibro は Ruby, ruby-xslt, libxml-ruby による実装です。ソースコードはとりあえず公開していません。