ちょっと硬派なコンピュータフリークのBlogです。

カスタム検索

2008-09-26

プログラマ35歳定年説に喝!

DevMeetingで感じたことなのだが、MySQLの開発者にあまり若い人は居ない。日本では「プログラマ35歳定年説」などという俗説がまことしやかに囁かれているが、逆に35歳以下のプログラマを見つける方が難しいという様相である。かのJim Starkey氏などは60歳の手前であるが、今でも現役でプログラムをガンガン書いている。(正直言って驚異的ですらある。。。)

歳を取ると身体に無理が利かなくなるなどのディスアドバンテージはあるが、その代わりこれまでに培った経験を活かすことが出来るであろう。特にRDBMS のような複雑なプログラムにおいては、そのソースコードについてよく精通している必要がある。ソースコードはおよそ100万行ほどあり、一人ですべてを網 羅するのはほぼ不可能である。しかし開発の過程においては、特に性能改善やバグ修正、機能追加などでは、既存のソースコードを参照する必要が多々ある。長 い経験を積んだプログラマの方がこの点では有利なのである。

また、RDBMSでは非常に高い性能を出しつつ、ACIDに準拠するという複雑なロジックを実現しなければならない。特にDurabilityを保証する にはシステムの挙動を考慮したプログラムを書かなければいけない。もっと平たく言うとUNIX(POSIX)の知識が必要であるということである。究極的 にはUNIXシステムコールを通じて出された各種要求が、カーネル内部またはデバイスドライバ等でどのように扱われるかということまで意識したプログラミ ングが出来るのが望ましい。もちろんそのような知識を身につけるには、かなりの経験が必要となる。

というわけで、MySQLのプログラマにはそのように経験豊富でぶっちゃけ凄いと思う人たちが多い。別に35歳でプログラミング能力が衰えるなどということは全くない。そしてその理由は、開発している対象がRDBMSであるからだと俺は考察する。

偏見かも知れないが日本のプログラマの典型的な開発はというと、ワンオフの 仕事が多いように思う。ユーザ企業が居て、要件定義があり、フレームワークやミドルウェアなどを駆使して出来るだけ短期間で仕事を完了させる。(納期に間 に合わせる。)しかしひとたびプロジェクトが完了して別のプロジェクトが始まると、要件も異なるのでプログラムを再利用できることはほとんどない。コー ディングに必要な知識も一からリセットである。従って経験を積み上げることのメリットがあまり得られないし、そもそも経験を積み上げていくということが難 しい。

つまり何が言いたいかというと、ワンオフのコードばかり書いていてはダメになるということである。

ライブラリを組み合わせて素早く成果を出すのは素晴らしいことであるが、仕事はほとんどがライブラリの中で完了しているということを忘れてはいけない。ラ イブラリが仕事を肩代わりしてくれるのであれば、高度なプログラミングの技術など必要ないというものである。ワンオフの仕事をするより、もっと汎用的に使 えて質の高いプログラムを、時間をかけてなおかつプログラミング技術を駆使して開発するのがいいのではないかと思う。そして、出来れば開発のベースはUNIX系のOSがいいだろう。なぜならば・・・
  • APIは進歩するがその更新頻度は非常にゆっくりである。(なので作成したプログラムの寿命が必然的に長くなる。)
  • カーネル内部の挙動が分かる。(オープンソースのものが多いから。)
  • OSの種類が違っても、POSIXに準拠していれば互換性を保つことが出来る。
  • 開発環境がタダで手に入る。
などの理由があるからである。POSIX様々である。プログラマとしてずっと現役で居たいならワンオフの仕事を極力しないに限るし、これからも長く使われていくであろうUNIX系のOSで仕事をするべきである。

やはりリチャード・ストールマンは正しかった。そしてGNUは素晴らしい!!

0 コメント:

コメントを投稿